@Entity
public class Categorie {
private Long id;
private String nom;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Long getId() {
return id;
}
}
我需要的是:
1)id == null(未分配id),策略是自动增量
2)id!= null(已分配id),保留具有指定值的实体
请帮助
答案 0 :(得分:0)
为此你必须删除自动生成的注释。通过从编写本机查询的数据库中手动调用序列的nextval获取自动生成的id,然后将其分配给实体
从实体类中删除序列生成器
@Id
public Long getId() {
return id;
}
检查id是否存在,否则从数据库中获取
if(catagorieObject.getId()==null){
catogorieObject.setId(getidFromSeq());
}
通过调用
获取序列IDpublic Long getidFromSeq(){
.......
String query="select SOME_SEQUENCE.nextVal from dual";
.....
}
答案 1 :(得分:0)
通过EntityManager#merge()合并实体实例,而不是使用EntityManager#persist()持久化实体实例