Hibernate:插入问题 - 找不到父键

2024-01-14

我在将实体插入数据库时​​遇到问题。我正在使用 Hibernate JPA。 这是我的数据库结构:

Table : User {CGU_USER_ID as PK}
Table : Industries {CGI_INDUSTRY_ID (PK),CGI_INDUSTRY_NAME}
Table : USER_INDUSTRY_MAP {CUIM_USER_ID (FK),CUIM_INDUSTRY_ID (FK)}

这是我的映射:

@JoinTable(name = "USER_INDUSTRY_MAP", joinColumns = @JoinColumn(name = "CUIM_USER_ID", referencedColumnName = "CGU_USER_ID"), inverseJoinColumns = @JoinColumn(name = "CUIM_INDUSTRY_ID"))
@OneToMany(cascade = { CascadeType.MERGE, CascadeType.REMOVE }, fetch = FetchType.EAGER)
private List<Industry> industrySet;

我收到的异常说:

org.springframework.dao.DataIntegrityViolationException: could not insert collection: [com.keff.gg.domain.User.industrySet#1242]; SQL [insert into CG_USER_INDUSTRY_MAP (CUIM_USER_ID, CUIM_INDUSTRY_ID) values (?, ?)]; constraint [CUSTOMERGATEWAY.FK_CUIM_USER_ID]; nested exception is org.hibernate.exception.ConstraintViolationException: could not insert collection: [com.keff.gg.domain.User.industrySet#1242]

Caused by: java.sql.SQLException: ORA-02291: integrity constraint (CUSTOMERPROJECT.FK_CUIM_USER_ID) violated - parent key not found

这是我的插入代码:

User user = new User();
query = session.createQuery("from Industry industry where industry.industryName=:industryName");
        query.setParameter("industryName", "validIndstry");
        results = (List<?>) query.list();
        if(results != null && results.size()>0){
            industryList = (List<Industry>)results;
        }
user.setIndustrySet(industryList); // If this is set to null then insert into User table is successfull
Long id = (Long) hibernateTemplate.save(user);

有人可以看看我的映射并告诉我我做错了什么吗? 请帮帮我。我对冬眠非常陌生。如果需要更多信息来追踪问题,请告诉我。

更新 - - - - - - - - - - - - - - - - - - - - - - - - - ------------------------------------------------ 我尝试过建立多对多和双向的关系

//User Class
@JoinTable(name = "CG_USER_INDUSTRY_MAP", joinColumns = @JoinColumn(name = "CUIM_USER_ID", referencedColumnName = "CGU_USER_ID"), inverseJoinColumns = @JoinColumn(name = "CUIM_INDUSTRY_ID"))
@ManyToMany(cascade = { CascadeType.MERGE, CascadeType.REMOVE }, fetch = FetchType.EAGER)
private List<Industry> industrySet;

//Industry Class
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "industrySet")
private List<User> userSet;

但仍然遇到同样的问题。


我找到了我所面临问题的根本原因。

用户表上有一个触发器,它在每次插入后更新用户序列。 我猜这就是导致问题的原因。我可以看到,禁用触发器后,我能够正确保存用户实体,没有任何问题。

感谢大家抽出宝贵的时间。

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

Hibernate:插入问题 - 找不到父键 的相关文章

随机推荐

  • Powershell 版本 5 Copy-Item -FromSession 找不到

    我正在尝试通过以下方式从远程会话复制一些日志文件 FromSession的参数Copy Itemcmdlet 在呼叫计算机上我安装了 PS 版本 5 运行脚本时我收到以下错误 Copy Item A parameter cannot be
  • Lodash 地图并返回唯一值

    我有一个 lodash 变量 var usernames map data usernames 产生以下结果 joebloggs joebloggs simongarfunkel chrispine billgates billgates
  • URIencode 和冒号

    冒号是一个可以根据许多站点编码为 3A 的字符 当我尝试使用编码时URIencode它不工作 例如 如果我尝试编码URIencode 然后什么也没有发生 返回冒号 为什么是这样 有人可以帮我吗 提前致谢 The encodeURI 对特殊字
  • 如何运行 Alamofire 库

    I downloaded the alamofire library and opened the iOS Example xcodeproj but it won t run In import Alamofire when i comm
  • 到 Task.Run 或不到 Task.Run

    假设我有一个包含异步方法的接口 并且该接口有两个不同的实现 这两种实现之一自然是异步的 而另一个则不是 实现非异步方法的 最正确 方法是什么 public interface ISomething Task
  • 无法在 xcode 崩溃报告中找到发生崩溃的代码

    我在 x code 中收到了几个崩溃报告 由用户报告 但无法找出它的用途 我在项目中打开它 但它没有显示发生崩溃的代码行 显然我尝试单击堆栈跟踪的每一行 如果您想在已发布的版本中触发崩溃 那么您应该将崩溃报告程序集成到您的项目中 并且Cra
  • 如何检查两个异步任务是否成功完成

    在函数中实现此流程图的最佳和最简单的方法是什么 现在我正在使用两个调度组 但我需要检查它们是否都已完成 而不仅仅是它们何时完成 如果他们完成了 那么 Friends 数组将包含元素 昵称数组将包含元素 注 FB是Facebook FIR是F
  • Python-读取具有不同分隔符的数据文本文件

    我有一个文件 其中字段由 分隔 子字段由 分隔 子字段中的项目由 分隔 我想读Python 一段时间后 我可能可以逐行阅读它 然后分割所有内容 但我相信这种事情已经存在了 文件的一行 0 16 250 1 0 053 RIG DIS 1 4
  • Prism - EventAggregator.GetEvent<>.Subscribe() - 使用泛型和约束

    我在使用作为棱镜框架一部分的事件聚合器订阅事件时遇到问题 如果我使用诸如 eventAggregator GetEvent
  • 无法从控制台将 .csv 导入 Cloud SQL

    我尝试了多种方法将 csv 文件导入 Cloud SQL PostgreSQL 但没有成功 psql f import sql 不起作用 它说我必须是超级用户才能导入 但 copy 有效 所以我尝试了 copy 但失败了 我得到 postg
  • 在 OpenLayers 3.20+ 中使用 view.fit() 使用 view.animate()

    我有以下为 OpenLayers 3 20 之前版本编写的代码 fitViewToFeature function viewer feature var pan ol animation pan source viewer olView g
  • .NET Core 是否有任何等效的 GAC?

    据我目前在完整 NET Framework 中的了解 当我们将框架安装到计算机上时 它将整个 BCL 部署到计算机的 GAC 中 这样 当我们使用 NET 开发软件并将其部署到该计算机时 它将使用 BCL 程序集 这些程序集在安装 NET
  • 嵌入式 dylibs/frameworks 仅支持 iOS 8.0 及更高版本的架构 armv7

    我刚刚从 Xcode 6 4 升级到 Xcode 7GM 现在在运行旧项目时收到以下警告 embedded dylibs frameworks are only supported on iOS 8 0 and later rpath xx
  • 是否可以迭代多个枚举类?

    我有三个枚举类 我想以某种方式将它们放入一个数组中 循环遍历该数组并在每个枚举类中调用相同的方法 这在Java中可能吗 在我看来 你不能将枚举类型放置在数组结构中 除非我错过了如何放置 谢谢 让每个枚举类型实现一个通用接口具有常用方法您想要
  • 两个视图控制器之间viewDidAppear和viewDidDisappear的回调顺序

    据我所知 至少有两种方法可以在另一个 UIViewController 上呈现 UIViewController 第一种是在 UIViewController 上使用 presentModalViewController animated
  • 如何在 NoteBook 之外的 pyspark 作业中使用 dbutils 命令

    我想使用 dbutils 命令来访问通过 Databricks 上的作业内的 Spark Submit 提交的 pyspark 作业中的机密 使用 dbutils 命令时 出现错误 dbutils not Defined 除了笔记本之外 还
  • 如何指定emacs中ESS会话打开的R版本? [复制]

    这个问题在这里已经有答案了 当我想在 emacs 中打开 R 会话时 我使用M x R 但是 我们的服务器在 usr bin R 中有 R 2 12 在 usr local bin R 中有 R 2 15 事实上 如果我问whereis R
  • android studio 将Json解析为字符串

    我有这个 JSON 对象 1 id module f83d6101cc adresse mac 00 6A 8E 16 C6 26 mot de passe mp0001 name a 2 id module 64eae5403b adre
  • 在服务器上运行选项未出现在 Eclipse 中

    我正在学习 SpringMVC 框架并查看了他们的代码副本 https src springframework org svn spring samples mvc basic trunk https src springframework
  • Hibernate:插入问题 - 找不到父键

    我在将实体插入数据库时 遇到问题 我正在使用 Hibernate JPA 这是我的数据库结构 Table User CGU USER ID as PK Table Industries CGI INDUSTRY ID PK CGI INDU