java在hibernate和Mysql中使用一个非Id的自动增量,因此我可以用触发器重置它
我正在实现一个注册表应用程序,其中每个记录都用一个引用标识,如01/2016、02/2016。。。等等 在我的实体类中,我使用
@Column(nullable = false)
private int year=Calendar.getInstance().get(Calendar.YEAR);
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int numReception; // this field will reset each year with a trigger.
private String reference; // This field should look like "01/2016", filled by a trigger too.
参考字段也将由触发器作为组合填充:“numReception/year”
问题是hibernate不会自动递增非主键的内容,我也不能在可存储的复合键中使用自动递增。 @prepersist和@postersist不起作用,因为如果您使用会话API(用来代替触发器),JPA回调将不起作用
有没有实现自动增量的解决方案?还有其他建议吗
# 1 楼答案
最后,我使用了一个复合键作为@embeddeble,带有两个字段id和年份, 我使用geert3建议的SQL查询将id设置为自动增量
我把它放在一个盒子里。sql文件,并使用属性将其添加到hibernate
所以我可以继续使用Hibernate生成数据库