`

jpa save 的一个坑

    博客分类:
  • java
 
阅读更多
/*
	 * (non-Javadoc)
	 * @see org.springframework.data.repository.CrudRepository#save(java.lang.Object)
	 */
	@Transactional
	public <S extends T> S save(S entity) {

		if (entityInformation.isNew(entity)) {
			em.persist(entity);
			return entity;
		} else {
			return em.merge(entity);
		}
	}

 save之前做判断主键是否为空,如果为空则新增,不为空则修改。

但。。。一种情况例外。。。

加了@version 就不行,因为更新需要根据版本来判断

分享到:
评论

相关推荐

    JPA save()方法将字段更新为null的解决方案

    但是,在使用save()方法时,经常会遇到一个问题,即字段更新为null的问题。 问题描述:在使用save()方法时,如果前端传来的数据中只有部分字段的值被修改,而其他字段的值保持不变,那么在后端更新时,其他字段的值...

    使用SpringBoot-JPA进行自定义保存及批量保存功能

    JPA是一个Java API,它提供了一种对象关系映射(ORM)机制,允许开发者使用Java对象来访问关系数据库。 在Spring Boot应用程序中,使用JPA可以简化数据访问层的开发,并提供了许多有用的功能,例如自动生成SQL语句...

    jpa例子jpajpa

    **Java Persistence API (JPA)** 是Java平台上的一个标准,用于管理关系数据库中的对象-关系映射(ORM)。它提供了一种方式,让开发者可以用面向对象的编程模型来操作数据库,而无需直接编写SQL语句。JPA允许你在...

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

    为了实现上述思路,可以创建一个通用 CRUD 实现类,继承自 SimpleJpaRepository。这个类需要实现 save 方法,以便处理 null 属性的问题。 知识点 4: save 方法的实现 在 save 方法中,首先需要获取对象的 ID,如果...

    JPA一对一关系实例配置

    例如,一个人可能只有一个护照,或者一个公司只有一份营业执照。在JPA中,我们可以通过注解来配置这种关系。 首先,我们需要在实体类上使用`@OneToOne`注解来声明一对一关系。这个注解可以放在属性上,也可以放在...

    openjpa 写的一个例子

    OpenJPA,全称Open Java Persistence API,是Java平台上的一个开源对象关系映射(ORM)框架,它实现了Java Persistence API(JPA),用于管理Java应用程序中的持久化数据。在这个"openjpademo"示例中,我们将会探讨...

    JPA (一)

    Java 持久化 API(Java Persistence API),简称 JPA,是 Java 平台上的一个标准,用于管理关系数据库中的数据。JPA 提供了一种面向对象的方式来操作数据库,使得开发人员可以使用 Java 对象来直接操作数据,而无需...

    JPA源文件/jpa学习

    **JPA(Java Persistence API)**是Java平台上的一个标准,用于管理关系数据库中的数据,它简化了在Java应用程序中存储、检索和管理对象的工作。JPA是Java EE和Java SE环境中的一种ORM(Object-Relational Mapping)...

    04_JPA详解_第一个JPA实例与JPA主键生成策略.zip

    **JPA(Java Persistence API)**是Java平台上的一个标准,用于管理关系数据库中的数据,它简化了ORM(对象关系映射)的过程。本压缩包文件"04_JPA详解_第一个JPA实例与JPA主键生成策略.zip"包含了关于如何在实际...

    Spring Data JPA 笔记

    Spring Data JPA 是一个强大的框架,它简化了Java应用程序与数据库之间的交互,是Spring生态中的重要组成部分。通过使用Spring Data JPA,开发者可以避免编写大量的JPA(Java Persistence API)和SQL代码,专注于...

    Spring Data JPA 简化 JPA 开发

    Spring Data JPA 是一个由 Spring 框架提供的强大库,它极大地简化了基于 Java Persistence API (JPA) 的数据库访问。JPA 是 Java 平台上的标准 ORM(对象关系映射)规范,允许开发者使用面向对象的方式处理数据库...

    JPA的一个例子

    JPA(Hibernate) + Spring JPATemplate 运行在oracle数据库上 博文链接:https://clarancepeng.iteye.com/blog/199249

    JPA教程,包括TOPLink JPA,Hibernate JPA,Open Jpa,jpa批注

    **Java Persistence API (JPA)** 是Java平台上的一个标准,用于管理关系数据库中的数据。它为Java开发者提供了一种对象关系映射(ORM)机制,将业务对象与数据库表进行映射,使得开发者可以使用面向对象的方式来操作...

    Struts2+Spring+Hibernet+JPA+sitemesh+log4j

    3. **Hibernate**:Hibernate是一个优秀的对象关系映射(ORM)工具,它简化了数据库操作,将Java对象与数据库表之间的映射关系通过配置文件或注解进行管理。在"SSH2"中,Hibernate作为持久层框架,处理数据库的CRUD...

    基于jpa的一对一的主键测试.docx

    其中,@Entity 指定该类是一个实体类,@Table 指定了该实体类对应的数据库表名为 "bb_person"。Person 实体类有三个属性:personId、personName 和 idcard。 * personId 属性使用了 @Id 和 @GeneratedValue 注解,...

    springboot + jpa 批量存储示例

    JPA则是一个标准,允许开发者使用Java语言进行数据库操作,避免直接编写SQL,提高了开发效率。 在Spring Boot项目中集成JPA,我们需要添加以下依赖: ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;...

    Pro JPA2 精通JPA2

    例如,`@Entity`表示一个类是实体,`@Id`表示主键字段,`@ManyToOne`表示多对一的关系等。 4. **缓存机制**:JPA提供了一级缓存和二级缓存,分别用于缓存实体对象和查询结果,提高应用程序的性能。 5. **事件监听器*...

    Gemini JPA 介绍资料

    对于在OSGi平台上的JPA应用而言,需要一个持久化服务,它能够满足OSGi环境的特点,例如需要在OSGi服务注册表中注册数据源服务(JDBC DataSource Service)和JPA提供者服务(JPA Provider Service),以便在OSGi环境...

    JPA映射关系详解javax JPA JPA映射关系 JPA映射

    一对一关系是指两个实体之间的关系,其中一个实体只能与另一个实体关联。在 JPA 中,使用 `@OneToOne` 注解来定义这种关系,并通过 `@JoinColumn` 注解指定关联字段。 **示例代码:** ```java @OneToOne @...

    JPA 标注 JPA标签手册

    例如,要将一个Java类标记为JPA实体,可以使用@Entity注解: ```java @Entity public class Employee implements Serializable { ... } ``` 您可以选择性地在实体类上添加注解以覆盖默认值,这被称为异常配置。 ...

Global site tag (gtag.js) - Google Analytics