gpt4 book ai didi

java - CRUDRepository 中的 Update 或 saveorUpdate

转载 作者:IT老高 更新时间:2023-10-28 13:48:04 28 4
gpt4 key购买 nike

我知道之前已经回答了一个类似的问题,但我的问题是在界面中有 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com