博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
org.hibernate.TransientObjectException
阅读量:7004 次
发布时间:2019-06-27

本文共 556 字,大约阅读时间需要 1 分钟。

hot3.png

在用SSH做程序的时候,我要在数据库的外键表里插入数据,可是它总提示org.hibernate.TransientObjectException,说主键id不可以插入到外键表中。数据库里也是没有插入进信息的,谁能告诉我这个错误到底是错在哪里啊?

原因:主键对象是暂态对象 因为它和外键对象都在同一个hibernate事务中 这个事务没有提交主键对象就没有在数据库生成数据,那么你再用它的id插入外键表 当然是不行了

可能是hibernate配置文件的主外键关联配置的不对

解决方法:1)xml配置:原因就像上面的说的,你可以尝试着在 <many-to-one>里加入cascade="all"属性。

<many-to-one  cascade="all"/>

2)annotation:@ManyToOne(cascade={CascadeType.ALL})

官方解释如下:

CascadeType.PERSIST:级联新增
CascadeType.MERGE:级联合并
CascadeType.REFRESH:级联刷新
CascadeType.REMOVE:级联删除
CascadeType.ALL:以上四种都是

转载于:https://my.oschina.net/cshuangxi/blog/209704

你可能感兴趣的文章
问题-Delphi不能进行调试模式
查看>>
$.extend()的实现源码 --(源码学习1)
查看>>
Docker 监控的一点想法
查看>>
从U-Boot显示Logo到Android
查看>>
基于 HTML5 Canvas 的简易 2D 3D 编辑器
查看>>
WINPE下如何直接删除联想隐藏分区?
查看>>
通过NTP协议进行时间同步
查看>>
测试的境界
查看>>
flash中NetConnection与NetStream知识整理
查看>>
SQL 问题:已知主键id 和排序条件 这条记录的上一条或下一条记录
查看>>
【转】NSNotificationCenter用法总结
查看>>
jquery 添加节点的几种方法
查看>>
Android WebView 总结
查看>>
创建存储过程和函数
查看>>
[zz]Linux下虚拟化技术深入探讨
查看>>
ASP.NET Cache的一些总结
查看>>
类型名称了解typename的双重意义
查看>>
深入理解计算机系统(1.2)---hello world的程序是如何运行的
查看>>
Json与数组
查看>>
Linux System Reinforcement、Intrusion Detection Based On syslog
查看>>