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=? 艰难搞定!!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值