首页 > 代码库 > hibernate里联合主键composite-id映射,查询单个主键的问题
hibernate里联合主键composite-id映射,查询单个主键的问题
今天项目中遇到这个问题,搞了大半天,现在记录下来
hibernate里联合主键配置(多个字段一起作为主键)
<class name="com.cskj.hibernate.map.BbWjjc" table="bb_wjjc" schema="dbo" catalog="wjgl"> <composite-id name="id" class="com.cskj.hibernate.map.BbWjjcId"> <key-property name="wjtmid" type="java.lang.Long"> <column name="wjtmid" /> </key-property> <key-property name="wjxxid" type="java.lang.Long"> <column name="wjxxid" /> </key-property> <key-property name="wjzxxid" type="java.lang.Long"> <column name="wjzxxid" /> </key-property> <key-property name="wjztmid" type="java.lang.Long"> <column name="wjztmid" /> </key-property> <key-property name="wjid" type="java.lang.Long"> <column name="wjid" /> </key-property> </composite-id>
主键的生成文件
public class BbWjjcId implements java.io.Serializable { private Long wjtmid; private Long wjxxid; private Long wjzxxid; private Long wjztmid; private Long wjid; 。。。。。。 }
查询单个主键时用HQL语句
from BbWjjc bw where bw.BbWjjcId.wjid=?
结果报错:
could not resolve property: BbWjjcId of: com.cskj.hibernate.map.BbWjjc [from com.cskj.hibernate.map.BbWjjc bw where bw.BbWjjcId.wjid=‘5‘]
上网查了一下,说是hql语句的问题.
测试了大半天结果调试正常了,原来是bw.BbWjjcId.wjid=?中的BbWjjcId要写映射xml中的name(即:id),不能写PK类名字.
正确的HQL: from BbWjjc bw where bw.id.wjid=? 艰难搞定!!!!
hibernate里联合主键composite-id映射,查询单个主键的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。