我知道之前已经回答了类似的问题,但我的问题是在接口中使用r 3方法实现save更新。 我目前正在我的项目中使用以下方法。不知道在这里制作saveorUpdate。 在我的课程之后:
public interface CompanyRepository extends CrudRepository<Company,Long>{
Company findByCompanyName (String companyName);
List<Company> findAll();
Company findById(Long id);
}
以下是我公司类的一部分
@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 clas
@MappedSuperclass
public abstract class BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
protected final Long id;
@Version
private Long version;
//Getters n setters
}
thanx in Advance。 我到处读,试了很多东西5个小时。 我只是希望CompanyRepository实现所有3种方法,而不是在其他类中覆盖它们但是如果我也有解释如何,我的代码依赖于ComapnyRepository的cuz patrt,只是希望添加save with update,plz解释我的代码
答案 0 :(得分:24)
CrudRepository
只有save
,但它也充当update
。
save
的实体id
进行save
,则会save
。id
的实体update
进行findById
时,它会执行save
,这意味着在您使用update
作为示例并更改对象中的某些内容后,可以在此对象上调用findById
,它实际上会执行id
,因为在save
之后,您会获得数据库中存在的已填充CrudRepository
的对象。Iterable
中的Process.GetProcesses()
可以接受您实体类型的单个实体或 listBox1.Items.Add(itemChecked + @" " + @"is running" + @" " + DateTime.Now);
。答案 1 :(得分:0)
在下面输入是否通过检查解决了我的问题,并且保存方法在保存并更新时起作用,当我通过id时,它会更新数据库中的记录;当我不通过id时,它将新记录保存在数据库中 在我的情况下,place是传入对象,而new place是我要在其中设置场所ID的场所的新对象
if(place.getPlaceId()!=0)
newPlace.setPlaceId(place.getPlaceId());