如何修复“重复属性映射”异常?

2024-03-05

我正在使用我的 xml 文件来从我的数据库映射新表,但是当我启动项目时,我收到一个我无法理解和解决的重复属性映射错误。这是我的 hibernate cfg.xml

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
                                         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
 <session-factory name="session1">
  <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
  <property name="hibernate.connection.password"/>
  <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/realestate</property>
  <property name="hibernate.connection.username">root</property>
  <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
  <property name="hibernate.connection.CharSet">utf8</property>
  <property name="hibernate.connection.characterEncoding">utf8</property>
  <property name="hibernate.connection.useUnicode">true</property>
  <property name="hibernate.show_sql">true</property>
  <property name="hibernate.format_sql">true</property>
  <property name="hibernate.current_session_context_class">thread</property>
  <property name="hibernate.c3p0.min_size">5</property>
  <property name="hibernate.c3p0.max_size">20</property>
  <property name="hibernate.c3p0.timeout">300</property>
  <property name="hibernate.c3p0.max_statements">50</property>
  <property name="hibernate.c3p0.idle_test_period">3000</property>
  <property name="hibernate.connection.CharSet">utf8</property>
  <property name="hibernate.connection.characterEncoding">utf8</property>
  <property name="hibernate.connection.useUnicode">true</property>
  <mapping resource="entities/users.hbm.xml"/>
  <mapping resource="entities/adminstration.hbm.xml"/>
  <mapping resource="entities/seller.hbm.xml"/>
  <mapping resource="entities/buyer.hbm.xml"/>
  <mapping resource="entities/renter.hbm.xml"/>
  <mapping resource="entities/leeser.hbm.xml"/>
  <mapping resource="entities/house.hbm.xml"/>
  <mapping resource="entities/userSellsHouse.hbm.xml"/>
  <mapping resource="entities/userRentsHouse.hbm.xml"/> 
    <mapping resource="entities/messages.hbm.xml"/> 


 </session-factory>
</hibernate-configuration>

messages.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="entities.Message" table="MESSAGES" schema="realestate">
        <id name="messageID" type="int">
            <column name="messsageID" />

        </id>
        <property name="Date" type="java.lang.String">
            <column name="Date" />
        </property>
        <property name="SenderID" type="java.lang.Integer">
            <column name="Sender"  />
        </property>
        <property name="ReceiverID" type="java.lang.Integer">
            <column name="Receiver"  />
        </property>
        <property name="Message" type="java.lang.String">
            <column name="Message"  />
        </property>
        <property name="Theme" type="java.lang.String">
            <column name="Theme"  />
        </property>

    </class>
</hibernate-mapping>

和消息持久类:

public class Message {
    int MessageID;
    int SenderID;
    int ReceiverID;
    String date;
    String message;
    String theme;


    public int getMessageID() {
        return MessageID;
    }
    public void setMessageID(int messageID) {
        MessageID = messageID;
    }
    public int getSenderID() {
        return SenderID;
    }
    public void setSenderID(int senderID) {
        SenderID = senderID;
    }
    public int getReceiverID() {
        return ReceiverID;
    }
    public void setReceiverID(int receiverID) {
        ReceiverID = receiverID;
    }
    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }
    public String getMessage() {
        return message;
    }
    public void setMessage(String message) {
        this.message = message;
    }
    public String getTheme() {
        return theme;
    }
    public void setTheme(String theme) {
        this.theme = theme;
    }

}

这是错误

...
    Caused by: org.hibernate.MappingException: Duplicate property mapping of SenderID found in entities.Messages
        at org.hibernate.mapping.PersistentClass.checkPropertyDuplication(PersistentClass.java:515)
        at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:505)
        at org.hibernate.mapping.RootClass.validate(RootClass.java:270)
        at org.hibernate.cfg.Configuration.validate(Configuration.java:1358)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1849)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1928)
        at database.HibernateUtil.<clinit>(HibernateUtil.java:15)
        ... 46 more

Edit:我尝试注释掉<mapping resource="entities/messages.hbm.xml"/>从 cfg 文件中,我仍然收到相同的错误。

Edit2:上面来自一个 java EE 项目,我将所有内容复制粘贴到一个简单的 java 项目中,并且运行良好。有什么建议吗?

Edit3:我在 messages 类中添加了final修饰符以确保它不能被继承


请浏览以下链接,这可能会对您有所帮助...

休眠 ORMHHH-2598 https://hibernate.atlassian.net/browse/HHH-2598

如果集合键不为 null,则映射具有相同集合名称的两个不同类的实体集合会导致重复的 backref 属性异常

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何修复“重复属性映射”异常? 的相关文章

随机推荐

  • 无法启动捆绑包 - 缺少要求(osgi.wiring.package)

    我是 Apache karaf 和 OSGI 的新手 我正在尝试编写并运行一个非常简单的包 但我在启动该捆绑包时收到此错误 执行命令时出错 在捆绑包上执行命令时出错 无法 解决 karaf 86 R 86 0 缺少要求 karaf 86 R
  • Rails ActiveRecord:验证单个属性

    有什么方法可以验证 ActiveRecord 中的单个属性吗 就像是 ac object valid attribute name 有时有些验证非常昂贵 例如需要执行数据库查询的验证 在这种情况下 您需要避免使用valid 因为它所做的事情
  • 更改我的 iPhone 应用程序的最低操作系统要求?

    我做了一个简单的申请 然后提交审核 之后 应用程序详细信息声称最低操作系统要求是 3 1 2 我使用该 SDK 如果我将目标的 iPhone OS 部署目标更改为较低的 iPhone OS 那么它可以 解决 我的问题吗 有没有风险 我使用一
  • 链接静态库时未捕获异常

    我开始在程序中实现 try catch 但是当我测试它时 异常从未被捕获 程序只是崩溃了 即使是最简单的 try catch 用例也会失败 即 try throw 123 catch cerr lt lt This line doesn t
  • 如果 dotCover 没有报告足够高的结果,我如何才能使 TeamCity 构建失败?

    我希望 TeamCity 运行我的 mSpec 测试并报告测试所涵盖的代码 我还希望 TeamCity 报告构建失败如果某些命名空间中的代码覆盖率未达到阈值 e g MyProduct ImportantStuff必须是100 but My
  • 打印通用字符

    谁能解释为什么通用字符文字 例如 u00b1 被编码为 UTF 8 字符字符串 为什么下面会打印加号 减号 include
  • 可变长度模板参数列表?

    我记得看到过这样的事情 template
  • 具有旧式类的 Python 描述符

    我试着用谷歌搜索一些关于它的东西 为什么非数据描述符适用于旧式类 文件说他们不应该 请注意 描述符仅针对新样式对象或类 子类化的对象或类 调用object or type http docs python org 2 reference d
  • 如何使用Camera2获取前置摄像头的id?

    如何使用新的 Camera2 库获取前置摄像头的 ID 我在文档中找不到它 我找到了解决方案 我可以通过调用获取相机特征getCameraCharacteristics cameraId on CameraManager object St
  • Twitter Bootstrap 中的全宽拆分下拉按钮

    我的网站上有一个地方正在使用一堆button元素样式为btn block example http jsfiddle net TQSk6 1 来自 Twitter Bootstrap 文档 我现在想将其中一些切换为拆分按钮 example
  • STL 和发布/调试库混乱

    我正在使用一些第三方 我正在使用它的共享库版本 因为该库很大 60MB 并且被多个应用程序使用 有没有办法在应用程序启动时找出库的发布 调试版本分别用于我的应用程序的发布 调试版本 更长的描述 公开 C 接口的库 API 方法之一返回std
  • IIS 7.0 中的模拟

    我有一个在 IIS 6 0 下正常工作的网站 它使用 Windows 凭据对用户进行身份验证 然后在与访问数据库的服务通信时 它会传递凭据 在 IIS 7 0 中 相同的配置设置不会传递凭据 并且数据库会受到 NT AUTHORITY AN
  • 捕获某个按钮点击的WndProc消息

    我的表格上有一个取消按钮 我想确定里面WndProc方法表示这个Cancel单击按钮并为其编写一些代码 这是绝对必要的 因为否则我无法取消所有其他尚未执行的控件验证事件 请帮忙 NET 2 0 WinForms 您可以通过以下方式解析左键单
  • Angular 2 TypeScript 如何在数组中查找元素

    我有一个组件和一个服务 成分 export class WebUserProfileViewComponent persons Person personId number constructor params RouteParams pr
  • Dialogflow Agent 在 Google 模拟器中工作,但在控制台和 Web 链接中失败

    我正在使用 Dialogflow V2 API 通过 Google 模拟器上的 Actions 进行测试时一切正常 请查找附件图片 但是 当尝试使用 Dialogflow 中的控制台 右列 以及 Web 集成链接时 它不起作用 代理能够从用
  • 比较常量时,哪里可以使用 & 和 ==?有什么不同?

    我想知道两者之间有什么区别 file dwFileAttributes FILE ATTRIBUTE DIRECTORY and file dwFileAttributes FILE ATTRIBUTE DIRECTORY 当我使用第一个时
  • 清除python中的变量

    python中有没有办法清除变量的值 例如 如果我正在实现二叉树 class Node self left somenode1 self right somenode2 如果我想从树中删除某些节点 我需要设置self left清空 The
  • iOS - 跟踪我的安装来自哪些广告活动[重复]

    这个问题在这里已经有答案了 我在应用商店中有一个 iOS 应用程序 并且正在运行一些广告活动 Google Adwords FB 广告等 我如何知道我的安装来自哪里 我有一个等效的 Android 应用程序 Google play 允许我将
  • ruby 中的错误解密错误

    在执行时cipher final 它说bad decrypt错误 我试图找出问题所在 但是 我找不到 你能告诉我我的代码有什么问题吗 这是我的代码 require openssl require base64 require hex str
  • 如何修复“重复属性映射”异常?

    我正在使用我的 xml 文件来从我的数据库映射新表 但是当我启动项目时 我收到一个我无法理解和解决的重复属性映射错误 这是我的 hibernate cfg xml