java - CRUDRepository 中的 Update 或 saveorUpdate

标签 java spring spring-boot spring-data

我知道之前已经回答了一个类似的问题,但我的问题是在界面中有 3 个方法时使用更新实现保存。 我目前在我的项目中使用以下方法,但不知道如何在其中进行 saveOrUpdate。 以下是我的类(class):

   public interface CompanyRepository extends CrudRepository<Company,Long>{
   Company findByCompanyName (String companyName);
   List<Company> findAll();
   Company findById(Long id);
   }

以下是我的公司类(class)的一部分

@Entity
public class Company extends BaseEntity{
 @NotNull
@Size(min = 2, max = 16)
private String companyName;
@Length(max = 60)
private String desc;
//TODO max: add LOGO class later for pic saving
@OneToMany
private List<MobileModel> mobileModels;

public Company()
{
  super();
  mobileModels = new ArrayList<>();
  }

//Getters n setters
 }

以下是我的 baseEntity 类

@MappedSuperclass
public abstract class BaseEntity {
@Id
@GeneratedValue(strategy =  GenerationType.AUTO)
protected final Long id;

@Version
private Long version;  
//Getters n setters
}

提前致谢。 我到处阅读,并在 5 个小时内尝试了很多东西。 我只希望 CompanyRepository 实现所有 3 种方法,而无需我在其他类中覆盖它们,但如果我也有,请解释如何因为我的部分代码依赖于 CompanyRepository。我只是想添加保存更新,请解释我的代码。

最佳答案

CrudRepository 只有 save 但它也可以作为 update

  • 当您对具有空 id 的实体执行 save 时,它将执行 save
  • 当您对具有现有 id 的实体执行 save 时,它会执行 update,这意味着在您使用 findById 例如并更改了对象中的某些内容,您可以在此对象上调用 save ,它实际上会执行 update 因为在 findById 之后获取数据库中存在的填充了 id 的对象。
  • CrudRepository 中的
  • save 可以接受单个实体或您的实体类型的 Iterable

关于java - CRUDRepository 中的 Update 或 saveorUpdate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43719828/

相关文章:

java - Android 中的 MVP 设计模式问题

java - 等待 Java 中的 Kotlin 协程结果

java - Spring bean 多次加载

java - 如何在Spring Boot应用程序的main方法中正确初始化Bean?

java - 我可以将 Socket.io 与 Spring-boot 一起使用吗?

java - 基本 GUI 窗口未出现

java - 基本的 Java IDE 插件?

java - 这个原型(prototype)类只会被Spring容器创建一次吗?

Spring RestTemplate 和 XMLStream 与对象列表一起使用

java - 建议部署 war 文件与带有嵌入式容器的可执行 jar