我正在开发一个 Hibernate/Spring 应用程序来管理一些电影。
班级电影与班级类型有多对多的关系。这两个类都使用 GeneratedValue 注释生成了 id。
流派是通过电影对象使用@Cascade(CascadeType.SAVE_UPDATE) 保存的。我在流派的类型属性上放置了一个唯一的约束(这是它的名称;例如“幻想”)。
我现在想做的是让 Hibernate 检查是否已经存在类型为“Fantasy”的流派,如果有,则使用该流派的 id 而不是尝试插入新记录。(后者显然会抛出错误)
最后,我需要的是 select-before-update 之类的东西,但更像是 select-before-save 之类的东西。
Hibernate中有这样的功能吗?
一些代码:
电影课
@Entity
public class Movie {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private String name;
@Lob
private String description;
@Temporal(TemporalType.TIME)
private Date releaseDate;
@ManyToMany
@Cascade(CascadeType.SAVE_UPDATE)
private Set<Genre> genres = new HashSet<Genre>();
.... //other methods
流派类
@Entity
public class Genre {
@Column(unique=true)
private String type;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id
....//other methods