解决使用Hibernate QBC复合查询含有联合主键映射关系实体的问题

来源:互联网 发布:概率非负矩阵分解 编辑:程序博客网 时间:2024/06/05 10:39
问题描述
  现在有3个表 user和card,和关系表user_card,user_card表是通过user_id和card_id联合作主键的,且类UserCard中user和card是两个对象,分别对应user_id和card_id,我现在要

通过card的编号来查询关系表记录

Criteria c = getSession().createCriteria(UserCard.class);c.add(Restrictions.eq("type", type));c.createAlias("card", "card");//如果不加入下面配置文件中注释下面的两个many-to-one,则hibernate无法自动left join card和user表进行查询c.add(Restrictions.eq("card.no", number));

<hibernate-mapping><class name="com.entity.UserCard" table="user_card" lazy="false" > <composite-id><key-many-to-one name="card" column="card_id" class="com.entity.CardInfo" /> <key-many-to-one name="user" column="user_id" class="com.entity.UserInfo" /> </composite-id> <property name="type" column="type"></property><!--解决方法是加入以下两个配置,并且将insert,update属性设置为false -->   <many-to-one name="card" column="card_id" class="com.entity.CardInfo" insert="false" update="false"/>   <many-to-one name="user" column="user_id" class="com.entity.UserInfo" insert="false" update="false"/></class></hibernate-mapping>





原创粉丝点击