1
我们必须在那里由触发器生成的ID表 -JPA - 主键前缀
ID =年+月+序列
我通过JPA映射表,我想在我的代码中也使用相同的PK代。我尝试了以下选项:
@Id
@SequenceGenerator(name = "assetSeq", sequenceName = "ASSET_SEQ")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "assetSeq")
@Transient
private long id;
,并试图改变二传手
public void setId(long id) {
String finalId=getIdPrefix()+id;
this.id = Long.parseLong(finalId);
}
private String getIdPrefix() {
DateFormat df = new SimpleDateFormat("YYYYMM");
Date today = Calendar.getInstance().getTime();
return df.format(today);
}
,但他们的工作不。我只想在数据库中插入新记录,并且不希望稍后使用该id。我使用Hibernate作为JPA
如果您使用的是序列,为什么不用触发器生成值?这样,你可以确保所有的客户端将始终使用序列中生成的ID ... –
好主意,这将是一个更好的方法。 –
这会很好,但是如果我将Id设置为transient,它仍然在插入语句中使用和Id - 这是我的第一种方法 – HamoriZ