最近在项目开发中突然遇到一个之前没有遇到的问题identifier of an instance of com.gov.share.Item was altered from 12 to 23的错误,debug调试也没有找到对应的id,之后网上搜索了一下基本上都是说是hibernate实体定义的类型与数据库定义的类型不一致导致的, 我检查了我代码与数据库,类型一致,最后检查代码,发现是对象定义时之后由于使用快捷键没仔细看导致的:
例如商品中有商品详情 商品类:Goods 详情 GoodsItem
错误写法:
Goods good = new Goods();
good.setId("1234");
good.setNo("G23532");
good.setName("商品");
GoodItem item = new GoodItem();
List<GoodItem> itemList = new ArrayList<GoodItem>();//项目中实际为传过来的
for(GoodItem item : itemList) {
item.setId("2354");
item.setPrice(125);
item.setNo("323253");
}
之后保存数据库就会出现错误
其中正确的写法是
Goods good = new Goods(); good.setId("1234"); good.setNo("G23532"); good.setName("商品"); GoodItem item ; List<GoodItem> itemList = new ArrayList<GoodItem>();//项目中实际为传过来的 for(GoodItem item : itemList) { item = new GoodItem();
item.setId("2354"); item.setPrice(125); item.setNo("323253"); }
原因很简单,创建一个对象了重复赋值导致的,这种问题很容易在代码修改的时候使用复制粘贴的方式不检查导致的。
java学习交流群:513650703
相关推荐
标题和描述中提到的"PC-IDENTIFIER-**.**.**.**-**.**.**.**安装包-链接地址.txt"和"PC_IDENTIFIER_**.**.**.**_**.**.**.**安装包_链接地址"是文件的名称和描述,它们所指的知识点是关于一个特定版本的软件或插件的...
12. **hibernate.use_sql_comments**:启用后,Hibernate会在SQL语句中添加调试信息,这对于理解和追踪SQL执行路径很有帮助。 接着是一些与JDBC和连接相关的属性: 1. **hibernate.jdbc.fetch_size**:设置JDBC的...
12. **hibernate.use_sql_comments**:如果启用,Hibernate将在SQL中添加调试信息。 关于JDBC和连接相关的属性: 1. **hibernate.jdbc.fetch_size**:设置JDBC的抓取大小,提高查询性能。 2. **hibernate.jdbc....
12. **hibernate.use_sql_comments**: 如果设置为`true`,Hibernate将在SQL中添加注释,便于调试。 **Hibernate JDBC和连接属性**: 13. **hibernate.jdbc.fetch_size**: 设置JDBC抓取(fetch)大小,非零值,通过`...
Hibernate 是一个流行的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,而无需编写大量的SQL代码。本篇文章将详细解析Hibernate配置的相关属性,帮助你更好地理解和使用Hibernate。 1. **...
**标题:“Hibernate开发帮助文档”** **描述:**该文档主要设计用于协助开发者解决在实际开发过程中遇到的与Hibernate框架相关的问题。它提供了一个全面的指南,深入解析Hibernate的各个功能和特性,使得开发者...
**标题:** Hibernate 4 学习笔记 **概述:** Hibernate 4 是一个流行的Java对象关系映射(ORM)框架,它允许开发人员在Java应用中处理数据库操作,而无需直接编写SQL语句。这个学习笔记将深入探讨Hibernate 4的核心...
4. **映射文件(Mapping File)**:`hbm.xml`文件用于定义Java类与数据库表之间的映射关系,而在Hibernate 5.x中,更常见的是使用注解方式来进行映射。 5. **Session(Session)**:这是Hibernate的核心接口,用于在...
- **.hbm.xml文件**: 传统的Hibernate映射文件,定义了实体类和数据库表之间的映射关系。 - **注解方式**: 使用Java注解(如`@Column`、`@OneToOne`、`@OneToMany`等)来代替XML映射,更加简洁。 **5. 数据访问操作...
10. **identifier of an instance of... was altered from... to...** - 这个错误提示表明尝试更改已持久化对象的标识符(ID),这是不被允许的。在`ChangID()`方法中,尝试更改新创建对象的ID,会导致Hibernate发出...
12. **`hibernate.use_identifier_rollback`**:决定在删除操作中是否使用标识符回滚。 - 示例: ```properties hibernate.use_identifier_rollback=true ``` 13. **`hibernate.use_sql_comments`**:决定...
- **Entity 和 Identifier**: Entity 表示业务对象,而 Identifier 是每个实体的唯一标识,通常对应数据库中的主键。 **2. Hibernate 配置** - **hibernate.cfg.xml**: 主配置文件,定义了数据库连接信息、缓存策略...
**hibernate持久化技术详解** Hibernate是一款强大的Java对象关系映射(ORM)框架,它为开发者提供了在Java应用中操作数据库的强大工具。通过Hibernate,开发者可以将数据库操作转化为对Java对象的操作,大大降低了...
**2.4.2 Identifier** **2.4.2.1 生成器** 可以使用 `@GeneratedValue` 注解来指定标识符的生成策略。 **2.4.2.2 自然 ID** 使用 `@NaturalId` 来标记自然标识符,这些标识符用于区分具有相同属性值的不同实体。...
- **AN-AAA (AN Authentication Authorization Accounting Server)**: 为AN提供对AT进行接入认证的网络实体。 #### 2. CDMA2000_1X语音业务流程 **2.1 MS始呼流程** MS始呼流程涉及以下步骤: 1. **MS** 在**Um*...
Duplicate identifier (error4):** - **含义:** 编译器检测到同一作用域内存在重复定义的标识符。 - **解决方法:** 确保每个标识符在同一个作用域内只被定义一次。 **5. Syntax error (error5):** - **含义:** ...
- **Identifier**: 实体的唯一标识符,对应数据库中的主键。 **2. Hibernate配置** - **Hibernate.cfg.xml**: 配置文件,用于设置Hibernate的连接信息、方言、缓存策略等。 - **Annotation配置**: 使用Java注解来...
例如,rac1节点的公有IP是***.***.*.**,虚拟IP是***.***.*.**,私有IP是**.*.*.**。rac2节点的公有IP是***.***.*.**,虚拟IP是***.***.*.**,私有IP是**.*.*.**。此外,还需要规划SCAN(Single Client Access Name...
**Hibernate教程** Hibernate是一款强大的Java持久化框架,它简化了数据库操作,使开发者可以更专注于业务逻辑而不是数据库交互。这个教程将深入探讨Hibernate的核心概念、配置、对象关系映射(ORM)以及实际应用。...
hibernate.properties # # Hibernate, Relational ...## rollback generated identifier values of deleted entities to default values #hibernate.use_identifier_rollback true ## enable bytecode reflection...