2016-03-25 4 views
0

は、私は、データベースを照会したいですこの場合の比較)を選択する必要がありますが、どのように達成できますか?Hibernateで埋め込みオブジェクトをクエリする方法は?行はzがで重要ではありません(クラスBに同じxとyを含んでいるので、私はクラスがA、B</p> <pre><code>class A{ @Embedded private B objB; } @Embeddable class B{ Integer x; Integer y; float z; } </code></pre> <p>今、私は設定OBJSクラスAの束を持っている

SQLでは "In"と似ていますが、埋め込みオブジェクトを比較しているので、どうすればいいですか?どうもありがとう!!

+0

ですあなた質問、 'x'と' y'の値が同じであるすべての 'A'オブジェクトを照会する方法は? –

+0

'A'はHibernateによって管理されるエンティティではありません。 'Entity'アノテーションと' Id'フィールドがありません。 'A'はエンティティか普通のJavaクラスですか? 'A 'がエンティティである場合、条件クエリ' session1.createCriteria(A.class、 "a")add(Restrictions.and(Restrictions.eq( "a.objB.x"、1)、Restrictionsを試すことができます。 list() 'またはhql' FROM A a.objB.x =:xとa.objB.y =:y ")。setParameter(" x( "a.objB.y"、1) "、2).setParameter(" y "、2).list()' –

答えて

1

考える授業:

session.createQuery("select a from RandomEntity a where a.embedded.valueA=:value").setParameter("value", 1L).list(); 

Hibernate: select randomenti0_.id as id1_2_, randomenti0_.valueA as valueA2_2_, randomenti0_.valueB as valueB3_2_ from RandomEntity randomenti0_ where randomenti0_.valueA=? 

か::

public class RandomEntity { 
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private Long id; 
    @Embedded 
    private EmbeddableEntity embedded; 
} 

@Embeddable 
public class EmbeddableEntity { 
    private Long valueA; 
    private Long valueB; 
} 

あなたはそれが好きで問い合わせることができます

session.createQuery("select a from RandomEntity a where a.embedded.valueA in (:value)").setParameterList("value", Arrays.asList(1L, 2L)).list(); 

Hibernate: select randomenti0_.id as id1_2_, randomenti0_.valueA as valueA2_2_, randomenti0_.valueB as valueB3_2_ from RandomEntity randomenti0_ where randomenti0_.valueA in (?) 
関連する問題