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

  • 相关阅读:
    postgresql 主从复制并切换
    执行sql中的 函数,function
    读取Core下的appsettings.json的值的时候中文乱码
    Core 定时任务之HangFire
    7 ~ express ~ body-parser 模块的使用
    6 ~ express ~ 搭建用户注册前端页面
    5 ~ express ~ 连接数据库
    4 ~ express ~ 划分模块开发
    3 ~ express ~ 静态文件托管
    2 ~ express ~ 模板引擎的配置与使用
  • 原文地址:https://www.cnblogs.com/520playboy/p/6512592.html
Copyright © 2020-2023  润新知