hibernate 未明确定义列 小记[通俗易懂]

hibernate 未明确定义列 小记[通俗易懂] 在写关联表的实体类时,用测试代码去运行,出现16:00:30,817ERRORJDBCExceptionReporter:72-ORA-00918:未明确定义列16:00:30,833ERRORPersistSpringImpl:244-[PersistImpl][find(queryString,offset,length)]hql:fromcom.esse.pro

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

 在写关联表的实体类时,用测试代码去运行,出现
16:00:30,817 ERROR JDBCExceptionReporter:72 – ORA-00918: 未明确定义列

16:00:30,833 ERROR PersistSpringImpl:244 – [PersistImpl][find(queryString, offset, length)] hql: from com.esse.projects.cpinfo.entity.MemberList
org.springframework.jdbc.BadSqlGrammarException: Hibernate operation: could not execute query; bad SQL grammar [select memberlist0_.Member_ID as Member1_87_, memberlist0_.MEMBERRECORD_ID as MEMBERRE2_87_, memberlist0_.MEMBER_ID as MEMBER1_87_ from MemberList memberlist0_]; nested exception is java.sql.SQLException: ORA-00918: 未明确定义列

java.sql.SQLException: ORA-00918: 未明确定义列
我的各个相应实体,配置文件如下:
数据库关系图如下:

概念模型

hibernate 未明确定义列 小记[通俗易懂]下一:物理模型

hibernate 未明确定义列 小记[通俗易懂]1.实体类
public class MemberList extends AbstractEntity implements Serializable {

    /**
     *
     */
    private static final long serialVersionUID = 30680140753579543L;
    private MemberListPK id;
    private MemberRecord memberRecord;
    private Member member;

    public MemberRecord getMemberRecord() {

        return memberRecord;
    }
    public void setMemberRecord(MemberRecord memberRecord) {

        this.memberRecord = memberRecord;
    }
    public Member getMember() {

        return member;
    }
    public void setMember(Member member) {

        this.member = member;
    }
    public MemberListPK getId() {

        return id;
    }
    public void setId(MemberListPK id) {

        this.id = id;
    }

}

2.MemberListPK联合主键实体类
public class MemberListPK implements Serializable {

    /**
     *
     */
    private static final long serialVersionUID = 8074810556884497882L;
    private long memberId;
    private long memberRecordId;

    public long getMemberId() {

        return memberId;
    }

    public void setMemberId(long memberId) {

        this.memberId = memberId;
    }

    public long getMemberRecordId() {

        return memberRecordId;
    }

    public void setMemberRecordId(long memberRecordId) {

        this.memberRecordId = memberRecordId;
    }

    public boolean equals(Object other) {

        if (this == other) {

            return true;
        }
        if (!(other instanceof MemberListPK)) {

            return false;
        }
        MemberListPK castOther = (MemberListPK)other;
        return new EqualsBuilder()
            .append(this.getMemberId(), castOther.getMemberId())
            .append(this.getMemberRecordId(), castOther.getMemberRecordId())
            .isEquals();
    }

    public int hashCode() {

        return new HashCodeBuilder()
            .append(this.getMemberId())
            .append(this.getMemberRecordId())
            .toHashCode();
    }

}
3.hbm.xml文件
<?xml version=”1.0″?>
<!DOCTYPE hibernate-mapping PUBLIC
    “-//Hibernate/Hibernate Mapping DTD 3.0//EN”
    “http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd”>

<hibernate-mapping>
    <class name=”com.esse.projects.cpinfo.entity.MemberList”
        table=”MemberList”>

        <composite-id name=”id”
            class=”com.esse.projects.cpinfo.entity.MemberListPK”>
            <key-property name=”memberId” type=”long”
                column=”Member_ID” />
            <key-property name=”memberRecordId” type=”long”
                column=”MEMBERRECORD_ID” />
        </composite-id>

        <!– Associations –>
        <many-to-one name=”member” class=”com.esse.projects.cpinfo.entity.Member” insert=”false” update=”false”>
            <column name=”MEMBER_ID” />
        </many-to-one>
        <many-to-one name=”memberRecord” class=”com.esse.projects.cpinfo.entity.MemberRecord” insert=”false” update=”false”>
            <column name=”MEMBERRECORD_ID” />
        </many-to-one>
    </class>
</hibernate-mapping>
4.在运行测试类时,会出现 未明确定义列,查看hibernat生成的sql语句,发现sql执行的是:
select memberlist0_.Member_ID       as Member1_87_,
       memberlist0_.MEMBERRECORD_ID as MEMBERRE2_87_,
       memberlist0_.MEMBER_ID       as MEMBER1_87_
  from MemberList memberlist0_
为什么对于MEMBER_ID字段查询两次呢,想不明白,仔细查看MemberList.hbm.xml文件原来,
<key-property name=”memberId” type=”long”
                column=”Member_ID” />
<many-to-one name=”member” class=”com.esse.projects.cpinfo.entity.Member” insert=”false” update=”false”>
            <column name=”MEMBER_ID” />
对于同一个MEMBER_ID字段,两个大小写不一致。导致sql生成的也不一样。
解决方法:把MEMBER_ID字段统一,要不全大写,要不全小写。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189147.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • lua实例教程_lua教程网

    lua实例教程_lua教程网目录Lua配置、安装、与运行Lua编译与调试环境搭建Lua基本语法1.交互式编程2.脚本式编程Lua中的数据类型1.数据类型展示2.注意事项Lua中的变量全局变量局部变量非局部变量(先看闭包)(upvalue)(实际代指变量而非值)(第一类函数)变量值的交换Lua中的闭包(词法定界)…待续(持续更新中)参考与引用Lua配置、安装、与运行1.进入Lua官网:http://www.lua.org——下载Lua2.下载文件【lua-5.3.4_Win64bin.zip】3.创建一个空文件夹“Lua

    2022年10月21日
    2
  • HTML+CSS+JS 实现登录注册界面[通俗易懂]

    HTML+CSS+JS 实现登录注册界面[通俗易懂]文章目录案例一滑动样式案例一滑动样式login.html<!DOCTYPEhtml><htmllang=”en”><head><metacharset=”UTF-8″><title>Login</title><linkrel=”stylesheet”href=”default.css”></head><body><divclass=”

    2022年7月21日
    14
  • 安全帽识别系统-智慧工地的守护者

    安全帽识别系统-智慧工地的守护者安全帽识别系统能够实时对未佩戴安全帽的行为发出警告,及时提醒监理人员处理,为作业人员筑起一道人工智能的安全防火墙。鹰眸安全帽识别系统面世之后,在业界引起了不小的震动,相关企业不但积极推广,还提出了许多建设性的意见,毕竟将人工智能的深度学习应用于视频分析还是很新的事物,那么鹰眸安全帽识别系统能做什么,在此与大家一起分享,希望起到抛砖引玉的作用。一、鹰眸安全帽识别系统通过视频实时分析工作区域,如…

    2022年5月15日
    40
  • 大数据管理与应用专业总结笔记

    大数据管理与应用专业总结笔记大数据管理与应用专业:数据科学教育特点:不仅依赖于传统的信息管理于信息系统专业,更依赖于计算机、数学、统计等学科。大数据专业十一门涉及广泛的交叉性的学科。大数据时代的下的理念(维克托·迈尔·舍恩伯格):一是更相关性而不是因果性;二是更关注数据的纷繁复杂,而不是数据的精准;三是全部数据,而不是抽样数据。维克托·迈尔·舍恩伯格:维克托·迈尔-舍恩伯格是十余年潜心研究数据科学的技术权威,是最早洞见大数据时代发展趋势的数据科学家之一,也是最受人尊敬的权威发言人之一。**目前的形势:**目前国内新增院校还不多

    2022年6月10日
    40
  • idear 激活码【在线破解激活】

    idear 激活码【在线破解激活】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    63
  • MOCK测试详解

    MOCK测试详解MOCK测试1.作用: 后端还未完成所有接口开发,但是前端已经完成了前端的开发需要联调,此时可先进行mock测试2.mock准备工作到下面网站https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/0.11.0/下载moco-runner-0.11.0-standalone.jar然后部署到lin…

    2022年6月20日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号