gpt4 book ai didi

java - Hibernate关联表映射

转载 作者:太空宇宙 更新时间:2023-11-04 06:47:14 24 4
gpt4 key购买 nike

我遇到映射错误,我需要一些帮助来查找问题。

我有两个表(TBLAUCTIONHEADERTBLUSER)。我添加了第三个表,将用户与拍卖标题关联起来 (TBLAUCTIONHEADERUSER)。第三个表只有两列(userid 和 auctionheaderid),它们是 tblauctionheader 和 tbluser 表的 id 的外键。

我把它映射到auctionheader的hbm文件中,这样:

<bag name="eventApprovers" table="TBLAUCTIONHEADERUSER" fetch="select" lazy="true">
<key column="AUCTIONHEADERID"/>
<many-to-many column="USERID" class="com.lalala.user.dataobject.User"/>
</bag>

我在 AuctionHeader.java 类中创建了一个列表:

//many-to-many

private List<User> eventApprovers;

在我的操作中,当我调用 aucHeader.getEventApprovers(); 时,我在日志中收到以下错误:

Exception: org.hibernate.exception.SQLGrammarException: could not initialize a collection: [com.lalala.auction.admin.dataobject.AuctionHeader.eventApprovers#12000]

Caused by: java.sql.SQLException: ORA-00904: "EVENTAPPRO0_"."AUCTIONHEADERID": invalid identifier

我不明白为什么/如何创建标识符“EVENTAPPRO0_”.“AUCTIONHEADERID”。

有人知道我可能做错了什么吗?

最佳答案

我自己发现了这个问题。

我映射了错误的列名称:

我设置的位置:

<bag name="eventApprovers" table="TBLAUCTIONHEADERUSER" fetch="select" lazy="true">
<key column="AUCTIONHEADERID"/>
<many-to-many column="USERID" class="com.lalala.user.dataobject.User"/>
</bag>

键列应该只是HEADERID,所以:

<bag name="eventApprovers" table="TBLAUCTIONHEADERUSER" fetch="select" lazy="true">
<key column="HEADERID"/>
<many-to-many column="USERID" class="com.lalala.user.dataobject.User"/>
</bag>

这就是问题所在。

关于java - Hibernate关联表映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23817339/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com