`
bjmike
  • 浏览: 282928 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于spring jpa save更新的操作

 
阅读更多
现有一个entity如下
@Entity
@Table(name = "t_pcstatus")
public class PCStatusEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int statusId;
    private int webId;
    private String ipAddr;
    private String lastSigninDate;

我想通过ipAddr的唯一ip更新操作,使用如下方式
pcStatusEntity = new PCStatusEntity();
        pcStatusEntity.setIpAddr(requestIP);
        int webId = jsonSignIn.getInt("web_id");
        pcStatusEntity.setWebId(webId);
        pcStatusEntity.setLastSigninDate(curDate);
        pcStatusService.savePCStatus(pcStatusEntity);


然而控制台却报了一个错误
 Duplicate entry '127.0.0.1' for key 'ip_addr'


经过google大神的指教,发现了问题,spring jpa的save操作在底层是先执行merge()的一个动作,而执行merge动作时根据entity标签里面的@Id,也就是主键来区分的,所以正确的更新方式应该是先把entity查询出来,然后再更新其中的某个字段,或者指教采用@Query的原生sql方式。
参考地址 http://stackoverflow.com/questions/11881479/how-do-i-update-an-entity-using-spring-data-jpa
分享到:
评论

相关推荐

    spring jpa

    以上就是关于Spring JPA的一些基本知识和使用技巧。通过这些内容,开发者可以更高效地在Spring框架下进行数据库操作,同时享受到Spring JPA带来的诸多便利。在实际项目中,合理运用这些知识点能够极大地提高开发效率...

    Spring Data JPA 笔记

    例如,Spring Data JPA支持自动化的查询生成,只需定义Repository接口,无需编写任何实现代码,就可以执行CRUD(创建、读取、更新、删除)操作。此外,它还支持复杂的查询方法命名,如findByXXX,根据方法名自动构建...

    Spring JPA Example

    Spring JPA(Java Persistence API)是Spring框架的一部分,它提供了一个简单、方便的方式来处理数据库操作。这个示例将深入探讨如何在Spring应用中使用JPA来实现数据持久化。 首先,我们需要理解JPA的核心概念。...

    Spring Data JPA从入门到精通

    事务管理是数据库操作的关键部分,Spring Data JPA与Spring的事务管理机制紧密结合。通过`@Transactional`注解,我们可以声明方法需要在事务范围内执行,确保数据的一致性。 关联关系是数据库设计的重要组成部分,...

    spring mvc spring spring jpa集成

    Spring JPA(Java Persistence API)是Spring对Java EE中的JPA规范的封装,用于简化数据库操作。它提供了一种声明式的方式来管理实体和数据库之间的映射,以及CRUD操作。Spring Data JPA进一步扩展了Spring JPA,...

    spring整合jpa简单实例

    在现代的Java开发中,Spring框架与JPA(Java Persistence API)的结合使用已经成为了一个常见的实践,它简化了数据库操作,提供了对象关系映射(ORM)的功能。JPA是Java EE的一部分,允许开发者以面向对象的方式处理...

    spring data jpa 教程

    使用 Spring Data JPA,可以快速搭建起一个基本的数据访问层,实现常见的 CRUD(创建、读取、更新、删除)操作。同时,Spring Data JPA 也支持一些高级特性,例如分页和排序,使得数据处理更加灵活。 第二章:Jpa...

    详解SpringBoot实现JPA的save方法不更新null属性

    Spring Boot 中 JPA 的 save 方法不更新 null 属性解决方案 知识点 1: JPA 的 save 方法的问题 在 Spring Boot 中使用 JPA 时,直接调用原生 Save 方法会导致 null 属性覆盖到数据库,使用起来十分不方便。这是...

    spring data jpa简单案例

    通过使用 Spring Data JPA,我们可以避免编写大量重复的 CRUD(创建、读取、更新、删除)操作代码,只需专注于业务逻辑。 ### 1. 引入依赖 首先,我们需要在项目中引入 Spring Data JPA 的相关依赖。如果你使用的...

    Spring Data JPA中文文档[1.4.3].zip

    Spring Data JPA是Java开发中的一个关键框架,它简化了与关系型数据库的交互,特别是基于Java Persistence API (JPA)。这个框架是Spring生态系统的组成部分,为开发者提供了声明式数据访问的方式,允许通过简单的...

    Spring Data JPA 简化 JPA 开发

    通过 Spring Data JPA,开发者几乎无需编写任何 DAO(数据访问对象)实现,即可完成常见的 CRUD(创建、读取、更新、删除)操作以及分页、排序等功能。Spring Data JPA 提供了一套灵活的查询机制,允许开发者通过...

    springDataJpa测试demo

    总的来说,"springDataJpa测试demo"项目展示了如何在Maven工程中集成Spring Data JPA,连接MySQL数据库,并进行CRUD操作。通过使用Spring Data JPA,开发者可以专注于业务逻辑,而不是繁琐的数据访问层实现。这个...

    Struts2整合Spring、JPA

    在Spring中,我们可以使用JPA的实现,如Hibernate或EclipseLink,来管理数据库操作。定义一个`EntityManager` bean并配置数据源,然后在需要的地方注入`EntityManager`,就可以进行CRUD操作。 ```xml <!-- Spring ...

    简单的spring整合JPA

    5. **Repository接口**:定义一个接口,继承自Spring Data JPA提供的`JpaRepository`或`CrudRepository`接口,然后就可以直接使用预定义的CRUD操作,如`save()`, `findAll()`, `findById()`等。 6. **Service层**:...

    整合Spring Data JPA1

    - 基本 CRUD 操作:通过继承 `JpaRepository` 的接口,如 `MyEntityRepository`,可以直接使用 `save()`, `findAll()`, `findById()`, `deleteById()` 等方法。 - 动态查询:利用 `JpaSpecificationExecutor` 接口...

    Spring Data JPA

    我们只需要定义一个接口,继承`JpaRepository`或`CrudRepository`,并指定实体类和主键类型,Spring Data JPA就会自动提供CRUD(创建、读取、更新、删除)操作。例如: ```java public interface UserRepository ...

    Spring + JPA + Hibernate配置

    在IT行业中,Spring框架是Java企业级应用开发的首选,而JPA(Java Persistence API)作为ORM(对象关系映射)规范,为开发者提供了数据库操作的便捷方式。Hibernate作为JPA的一个实现,更是广泛应用于实际项目中。这...

    spring data jpa 例子

    例如,你可以创建一个名为`UserRepository`的接口,其中定义如`findAll()`,`save()`和`findById(Long id)`等方法,Spring Data JPA会自动生成相应的SQL查询。 接下来,我们关注实体(Entity)的概念。在Spring ...

    Spring Data JPA 2.0 标准模板

    在 Spring Data JPA 2.0 版本中,它引入了更多优化和改进,使得开发者能更高效地处理数据库操作。 **1. 简介** Spring Data JPA 通过提供一套基于接口的Repository抽象,让开发者无需编写大量繁琐的DAO代码,即可...

Global site tag (gtag.js) - Google Analytics