Java代码弱点与修复之——ORM persistence error(对象关系映射持久错误)
弱点描述
ORM persistence error, ORM 持久化错误 。表示 ORM 工具在尝试将对象保存到数据库中时出现了问题。可能的原因包括:
- 数据库连接错误:ORM 工具无法连接到数据库,或者连接到数据库的权限不足。
- 数据库表结构错误:ORM 工具无法正确映射对象和数据库表之间的关系,可能是由于数据库表结构发生变化或者 ORM 工具配置错误导致的。
- 数据库操作错误:ORM 工具在执行数据库操作时出现了错误,可能是由于数据库中已存在相同的数据、数据类型不匹配或者数据格式不正确等原因导致的。
示例代码
示例代码:
public void abandonedTransient() {User user= new User();user.setId("134");}
User 是一个实体类,这里创建了一个实例, 设置了一些属性值,却没有保存。
提示的信息如下:
New data is not stored in the database.lost_transient: Transient object user goes out of scope.
, 新数据没有保存在数据库。
提示信息的意思是:
数据没有保存到数据库库,
丢失的临时对象,临时对象超出了范围。
看上去的错误是: 创建的实例没有保存到数据库。
所以想是不是调用 persist 和 flush 方法写入到数据库就不会出错呢?代码类似:
public void