首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jpa ejbql按列表属性查询

Jpa ejbql按列表属性查询
EN

Stack Overflow用户
提问于 2012-05-19 00:36:41
回答 1查看 451关注 0票数 0
代码语言:javascript
复制
PersenInfo : (long id,String name, String lastName,String email)
AnsMsg : (long id,PersenInfo fromPersoninfo,String theMsg)
Person : (PersonInfo personInfo, List<AnsMsg> msgs)

person.hbm看起来像这样:

代码语言:javascript
复制
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated May 4, 2012 2:48:41 PM by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
    <class name="Entities.Person" table="PERSON">
        <id name="id" type="long">
            <column name="ID" />
            <generator class="increment" />
        </id>
        <many-to-one name="personInfo" class="Entities.PersonInfo" cascade="all" not-null="false" lazy="false"/>

        <property name="_pass" type="java.lang.String" access="field" lazy="false">
            <column name="_PASS" />
        </property>
        <property name="_IsConnect" type="int" access="field" lazy="false">
            <column name="_ISCONNECT" />
        </property>
        <property name="c2dmId" type="java.lang.String" lazy="false">
            <column name="C2DMID" />
        </property>

        <property name="lastSeen" type="long" lazy="false">
            <column name="LASTSEEN" />
        </property>
        <list name="msgList" inverse="false" table="ANSMSG" lazy="false" >
             <key column="parent_id" />
              <index column="idx"  />
            <one-to-many class="msg.AnsMsg"  />
        </list>
    </class>
</hibernate-mapping>

现在我尝试获取fromPerson=6的所有AnsMsg列表和parent_id=3的所有AnsMsg

我的查询应该是什么样子的?(我的意思是这样的:

代码语言:javascript
复制
"from AnsMsg ansMsg where ansMsg.fromPerson.id='6' or ansMsg.parent_id='6'" 

当然,这个查询不会起作用。)

我的数据看起来是这样的:

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-05-19 01:14:45

试试这个:

代码语言:javascript
复制
select m.* from Person p, p.msgList m, m.fromPersonInfo f where p.id = 6 or f.id = 6

  1. Parent id (我假设是接收者)是确定加入人员的,并且某人发送的AnsMsg
  2. 使用m.fromPersonInfo.id退出,尽管JPA不能计算这样的表达式,因此,必须分离到m.fromPersonInfo ff.id = 6

select m.* from Person p, p.msgList m where p = :person or m.fromPersonInfo = :fromPersonInfo:如果你使用Person和PersonInfo实例作为查询的参数,你应该这样做:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10656478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档