【问题标题】:jpa jpql Query on OneToMany relationjpa jpql 查询 OneToMany 关系
【发布时间】:2014-07-30 04:09:51
【问题描述】:

我有两个实体对象

对象 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 创建查询(JPQL)

这将给我所有 MyInfo 的 status="1" 和 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

【问题讨论】:

  • 试试下面的查询,看看返回什么 -->select x from MyInfo x left join fetch x.myInfoRequests b where x.status=:status and b.dataA=:dataA
  • openjpa 不喜欢它.. 这是它得到的:<686069>

标签: java jpa entity jpql


【解决方案1】:

尝试以下查询:

...
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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-06
    • 2017-08-14
    • 1970-01-01
    • 2017-01-23
    • 1970-01-01
    • 2017-11-30
    • 2014-08-20
    相关资源
    最近更新 更多