Java 更新或保存或在CRUDRepository中更新
我知道前面已经回答了一个类似的问题,但我的问题是实现save with update,而接口中有3种方法。 我目前在我的项目中使用以下方法,不知道如何在这个项目中进行saveOrUpdate。 以下是我的课程:Java 更新或保存或在CRUDRepository中更新,java,spring,spring-boot,spring-data,Java,Spring,Spring Boot,Spring Data,我知道前面已经回答了一个类似的问题,但我的问题是实现save with update,而接口中有3种方法。 我目前在我的项目中使用以下方法,不知道如何在这个项目中进行saveOrUpdate。 以下是我的课程: public interface CompanyRepository extends CrudRepository<Company,Long>{ Company findByCompanyName (String companyName); List<
public interface CompanyRepository extends CrudRepository<Company,Long>{
Company findByCompanyName (String companyName);
List<Company> findAll();
Company findById(Long id);
}
提前谢谢。
我到处阅读,花了5个小时尝试了很多东西。
我只想让CompanyRepository实现所有3个方法,而不必在其他类中重写它们,但如果我也这样做了,那么请解释一下,因为我的部分代码依赖于CompanyRepository。我只想添加带更新的保存,请解释我的代码。
crudepository
只有save
,但它也充当update
- 当您对id为空的实体执行
操作时,它将执行保存
保存
- 当您对具有现有
的实体执行id
操作时,它将执行save
,这意味着在您使用更新
并更改对象中的某些内容之后,您可以在此对象上调用findById
,它实际上会执行save
,因为在update
之后,您会得到一个数据库中存在的已填充findById
的对象id
中的crudepository
可以接受实体类型的单个实体或save
Iterable
if(place.getPlaceId()!=0)
newPlace.setPlaceId(place.getPlaceId());
我在找这样的解释!简单易懂!谢谢@汤姆:对
saveAll
也一样吗?@TheOddAbhi在引擎盖下saveAll
只需迭代并调用save
,就可以在所提供的Iterable中找到每个元素。因此,是的,它是相同的(例如)
@MappedSuperclass
public abstract class BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
protected final Long id;
@Version
private Long version;
//Getters n setters
}
if(place.getPlaceId()!=0)
newPlace.setPlaceId(place.getPlaceId());