我有两个实体对象
对象1
@Entity
MyInfo
String key;
String eMail;
String status;
@OneToMany(mappedBy="myInfo")
private List<MyInfoRequest> myInfoRequests;
对象2
@Entity
MyInfoRequest
String key;
String dataA;
String dataB;
String dataC;
@ManyToOne
@JoinColumn(name="KEY")
MyInfo myInfo;
我尝试使用EntityManager
创建Query(JPQL)将给我所有状态=“1”的MyInfo和myInfoRequest.dataA =“BIG” 但我得到的是所有myInfoRequest.dataA =“BIG”和MyInfo具有相同的信息 (我当然得到MyInfo对象列表的结果)
这是我尝试的
SELECT x from MyInfo x,MyInfoRequest b where b.dataA=:dataA AND x.status=:status
我正在使用jpa 1.0。 和OpenJPA 1.2.1
答案 0 :(得分:0)
尝试以下查询:
...
String qlString = "SELECT x "
+ "FROM MyInfo x JOIN x.myInfoRequests b "
+ "WHERE x.status = :status AND b.dataA = :dataA";
List<MyInfo> result = em.createQuery(qlString)
.setParameter("status", "1")
.setParameter("dataA", "BIG")
.getResultList();