使用JPA保存对象时报nested exception is javax.persistence.RollbackException: Transaction marked as rollbackOnly错误

时间:2022-02-25 00:08:09

使用JPA保存对象时报nested exception is javax.persistence.RollbackException: Transaction marked as rollbackOnly错误

使用JPA保存对象时报nested exception is javax.persistence.RollbackException: Transaction marked as rollbackOnly错误

 

刚开始以为是数据库中的表有问题,主键的字段不能为空,结果给它赋值了还是不行,再一看数据库中有些非空的字段没有设值,又改了

一下表的结构,允许为空,结果还是报错。再一想是不是因为实体类实现了序列化的原因,把序列化给注释了还是不行,最后回想到在生

成实体类的时候有四个字段改成了Serializable类型,然后我在实现类中又手动的将它改成了String类型,所以报错了。

解决方法:将ntext类型改为text类型就可以了

使用JPA保存对象时报nested exception is javax.persistence.RollbackException: Transaction marked as rollbackOnly错误

在SQL中:

ntext和text一样用来保存大量的文字数据,不过text用单字节保存数据 ,ntext固定用双字节保存数据. ntext保存的是Unicode的字符 , ntext支持跨语言平台。

ntext:

可变长度 Unicode 数据的最大长度为 230 - 1 (1,073,741,823) 个字符。存储大小是所输入字符个数的两倍(以字节为单位)。ntext 在 SQL-92 中的同义词是 national text。 

ntext中存数据是按双字节存的 ,显示不了NTEXT你换一下recordset打开方式就行了 

text: 
服务器代码页中的可变长度非 Unicode 数据的最大长度为 231-1 (2,147,483,647) 个字符。当服务器代码页使用双字节字符时,存储量仍是 2,147,483,647 字节。存储大小可能小于 2,147,483,647 字节(取决于字符串)。

原文博客的链接地址:https://cnblogs.com/qzf/