私は安らかなインターフェースを使ってすべての製品をリストしようとしています。JAX-RS:RestfulコールでXML出力を選択するにはどうすればよいですか?
@XmlRootElement
public class Product implements Serializable {
//products attributes defined here
@OneToMany(cascade = CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="product")
private Set<ProductUser> productUsers= new HashSet<ProductUser>();
}
私は製品にfind.Allを呼び出そうとすると、私が私の残りの部分をXMLで製品のユーザーを含めたくないでもProductUsersを取得しようとすると例外
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role, productUsers, no session or session was closed
を投げています出力。どのようにXMLに含まれるものを選択的に選択するのですか?
私はREST-Easy、JBoss AS7、JPAとHibernateを実装として使用しています。私のEJB 3.1のメソッドは、Restfulサービスとして公開されています。
ありがとうございました!
アレックス、この方法は理にかなっています。試してみます。しかし、私のフロントエンドが(バリデータを利用するために)JPAエンティティを使用したい場合、私はフロントエンド用のEJBとRestfulメソッドとして公開するための2つの別個のメソッドを作成することになります。 JPA Entityのどのコレクションがサービスコールで公開されるのかを選択する他のエレガントな方法はありますか? –
Alex、上記のJpaProductをデタッチしてproduct.setProductUsers(null)を呼び出すと、あなたが提案したもの(別のJaxbProductを作成する)と比較して何らかの欠点があると思いますか? –
@Veer「フロントエンド」と言ったらどういう意味ですか?あなたはあなたの建築用スタックをスケッチしてください。 –