2012-05-06 17 views
2

Webアプリケーションでは、Hibernateとstruts2を使用します。 XMLとしてデータを返す必要があったため、SimpleXMLフレームワークをミックスに追加しました。SimpleXMLと休止状態がうまくいきませんか?

まだテスト段階です。そこで私は、Storeクラスに注釈を追加しました。これは、Hibernateによって生成されたPOJOクラスです。

私のXMLにはデータがありません。ここで私が得るものです:

<store> 
    <storeID>0</storeID> 
</store> 

私の代わりにこのXMLを期待しています:

<store> 
    <storeID>2</storeID> 
    <storeName>JC Penny</storeName> 
</store> 

は、Storeクラスのコードは次のようになります。

/** 
* Store generated by hbm2java 
*/ 
@Root(name="store") 
@Entity 
@Table(name="store" 
    ,catalog="shopperdb" 
) 
public class Store implements java.io.Serializable { 

    @Element(name="storeID") 
    private int id; 

    @Element(name="storeName" , required=false) 
    private String name; 
    @Id 

@Column(name="id", unique=true, nullable=false) 
public int getId() { 
    return this.id; 
} 

public void setId(int id) { 
    this.id = id; 
} 

@Column(name="name", length=45) 
public String getName() { 
    return this.name; 
} 

public void setName(String name) { 
    this.name = name; 
} 
} 

はまた、ここに私のコードがありますhibernateを使用してデータベースからデータをロードし、ログファイルにXMLを生成するアクション:

 _sess = HibernateUtil.getSessionFactory().getCurrentSession(); 

    if (!_sess.isOpen()) _sess = HibernateUtil.getSessionFactory().openSession(); 

    _tx = _sess.beginTransaction(); 

    Store tempStore = (Store) _sess.load(Store.class, 2); 

    Serializer serializer = new Persister(); 

    serializer.write(tempStore, System.out); 

    _tx.commit(); 

私はこの記事から取ったいくつかの印刷ステートメントを持っていたので、私はデータベースから正しいデータを取得しています。

あなたのご協力が大変ありがとうございます。

答えて

1

固定しました。 Hibernateの使用では、LOADメソッドによって返されるオブジェクトは、クエリLISTメソッドによって返されるものとは多少異なっているようです。 Go figure!これにより

Store tempStore = (Store) _sess.load(Store.class, 2); 

は、だから私は、次の行を置き換え

Store tempStore = (Store)_sess.createQuery("from Store s where s.id=:sid").setInteger("sid", 2).uniqueResult(); 

私がなぜわかりません。パフォーマンスの結果についても確信はありません

関連する問題