`

Hibernate修改对象时有没有办法不逐个字段更新?

阅读更多
我们使用Hibernate修改一对象时,会先load这个对象,然后在对这个对象的一些字段赋值,最后再saveOrupdate这个对象.但这显然是不太合理的,假设我一个对象有100个属性或更多,假设我要更新其中66个属性,而其他属性不变化,按照前面的方法写出来,代码就丑死了!有没有办法实现这样的功能,就是让Hibernate直接saveOrupdate这个对象(与页面上的表单对应的Pojo),把这个临时对象和其对应的数据库里的持久化对象比较,如果某个属性值发生了变化,则修改之;而没有发生变化的,则继续保留其数据库的值.
分享到:
评论
4 楼 抛出异常的爱 2008-01-22  
apach.command里面有个beanutil东西.可以拷贝很多参数.
PS:你认为从页面传66个参数不丑么?
3 楼 罗致克 2008-01-22  
我也遇到了这个疑惑 为什么不能局部更新呢?
2 楼 DavyLee 2007-08-18  
<p>这么复杂的问题被放到入门讨论里,真汗啊!</p>
<p>唉,自己语言表达能力太差了!</p>
1 楼 DavyLee 2007-08-18  
<p>大哥,我不知道你们看明白没有!</p>
<p>不要以为那么肤浅,这个问题很麻烦!</p>
<p>我说的是直接修改一个对象,而不去碰他的属性!</p>

相关推荐

    hibernate-validator-5.2.1.Final-dist

    1. 注解解析:在执行验证时,Hibernate Validator会扫描被验证对象上的注解,收集所有的验证规则。 2. 规则执行:根据收集到的规则,Validator会逐个进行验证,并将结果存储在ConstraintViolation对象中。 3. 结果...

    1、hibernate 简单语法1

    Hibernate 简单语法详解 Hibernate 是一个流行的Java持久层框架,提供了对数据库的访问和操作的功能。在本文中,我们将详细介绍 Hibernate 的简单语法,包括查询语言、参数绑定、结果集处理等方面的知识点。 查询...

    Hibernate快速入门

    - **Update(更新)**: 修改对象属性后,调用`Session.update()`或`Session.saveOrUpdate()`将更改保存回数据库。 - **Delete(删除)**: 使用`Session.delete()`方法删除对象。 7. **Querying(查询)** ...

    hibernate_formToModelConvertorOneToMany.rar

    在这个例子中,`@RequestParam("addresses") List&lt;String&gt; addressStrings`接收前端提交的地址数据,然后逐个创建`Address`对象并添加到`User`的`addresses`集合。最后,通过Hibernate的`userRepository.save(user)`...

    J2SE 人力资源管理系统struts1.0+hibernate

    《J2SE人力资源管理系统:基于Struts1.0与Hibernate的实现详解》 在IT行业中,开发企业级应用...通过学习和研究这个系统,不仅可以掌握Struts1.0和Hibernate的使用,还能对整个企业级应用的开发流程有一个全面的认识。

    Hibernate程序性能优化.doc

    - **属性延迟加载**:对对象的某些属性进行延迟加载,减少初始化时的数据加载量。 #### 七、方法选用 1. **结果集处理**:使用ScrollableResults或Iterator替代List或Set,以避免一次性加载大量数据导致内存溢出。...

    完整XML读取数据,省市区三级插入数据库的Hibernate的实现。

    通过使用Hibernate,开发者可以将Java对象映射到数据库表,从而实现对象关系映射(ORM)。在本案例中,Hibernate被用来读取XML文件中的省市区数据,并将这些数据插入到相应的数据库表中。 实现这个功能的过程大致...

    Java反射机制在数据持久层轻量级ORM框架中的应用研究.zip

    在ORM框架中,当需要将集合类型的数据持久化时,可以遍历集合并逐个处理其中的对象。 8. **延迟加载**:ORM框架常采用懒加载策略,即在需要时才加载关联的对象。通过反射,可以在对象被访问时,动态地加载其关联的...

    读取数据库类写成java类

    如果没有使用ORM,我们则需要手动创建实体类,然后逐个字段地从ResultSet中提取数据并赋值给实体类的属性。 例如,假设我们有一个名为`User`的实体类,包含`id`、`name`和`email`属性,我们可能会这样做: ```java...

    java基础笔记(初学者)

    这里使用了 `HQL`(Hibernate Query Language)来执行 SQL 查询,返回一个 `User` 对象的列表。通过 `users.get(0)` 取得列表中的第一个元素,即查询结果。然后,`EntityToVoUtil.userConvertVo` 方法将 `User` 对象...

    发布新闻,根据id修改标题,title模糊 查询,根据id数组删除新闻

    在数据库层面,这可能对应一个SQL UPDATE语句,根据ID字段更新指定行的标题字段。 模糊查询在新闻检索时非常实用,特别是当用户希望找到含有特定关键字的新闻时。在Java中,可以使用JPA的`@Query`注解或者MyBatis的...

    使用注释将JDBC结果集映射到对象

    然而,直接操作`ResultSet`并不方便,尤其是当我们需要将数据映射到Java对象时。这就是"使用注释将JDBC结果集映射到对象"的主题所关注的。这个主题介绍了一种方法,通过使用注解来简化这个过程,使得数据转换更加...

    ssh整合的分页、批量删除

    Spring提供了依赖注入和面向切面编程,Struts处理MVC模式,而Hibernate则是ORM(对象关系映射)框架,负责数据库操作。下面将详细介绍SSH整合在分页和批量删除功能上的实现。 一、SSH整合中的分页 在大型系统中,...

    java基础学习词汇

    反射是Java中的一项高级特性,允许在运行时检查和修改类、字段和方法等的结构。反射常用于框架和工具库中,为开发者提供了强大的动态操作能力。 #### Script (脚本) 脚本通常是指一系列命令或代码的集合,用于自动...

    最全java面试题及答案(208道)

    当自定义类时,如果类包含可变字段,应考虑重写 `equals()` 和 `hashCode()` 方法,确保正确的对象比较。如果不这样做,即使对象内容相同,`equals()` 也可能返回 false。 5. **Java 集合框架** 集合框架是 Java ...

    XStream完整jar

    6. **集成性**:XStream与其他Java框架如Spring、Hibernate等有很好的集成,可以方便地用于这些框架的数据交换。 7. **性能**:尽管XStream的性能可能不比某些专为高性能设计的库,但它在大多数日常应用中表现出...

    SQL注入攻击.pdf

    5. **使用ORM(对象关系映射)**:如Hibernate、Entity Framework等,它们在一定程度上能自动处理SQL注入问题。 6. **代码审查和安全编码训练**:定期进行代码审计,确保开发人员了解和遵循安全编码最佳实践。 7. **...

    jackson.zip|jackson.zip

    但如果涉及到复杂的Java对象与JSON之间的转换,那么jackson-databind和其依赖的jackson-annotations就不可或缺。此外,通过扩展和配置,Jackson还可以与其他框架如Spring、Hibernate等深度集成,提供更强大的功能。 ...

    Jackson 框架

    例如,当你需要将一个Java对象发送到服务器或者从服务器接收数据时,JSON格式是一种轻量级且易于解析的格式。 2. **多模态支持** Jackson不仅限于JSON处理,还支持XML格式的转换。通过`jackson-dataformat-xml`...

    SpringMVC上传文件,用poi通过excel批量添加数据,向数据库中添加对象,对象涉及日期格式,Boolean格式提供思路

    在处理完所有数据后,可以使用JDBC或者ORM框架(如Hibernate、MyBatis)将User对象批量插入到数据库中。这里假设你使用JDBC,创建一个事务,遍历用户列表并执行SQL插入: ```java Transaction transaction = ...

Global site tag (gtag.js) - Google Analytics