我正在使用Spring 3和Hibernate 4
我在实体类
中有以下内容 @Id
@Column(name = "PROJECT_NO")
private String projectNumber;
当我将值插入数据库表时,是否可以按以下格式插入PROJECT_NO
值作为主键
20131
其中2013年是当前年份,下一个字符应逐一增加。即要插入的下一个值应为20132
如何使用JPA / Hibernate实现此目的
答案 0 :(得分:3)
您必须查看@GeneratedValue和@GenericGenerator注释。
有几种可能产生价值。在您的情况下,我相信您需要创建以下内容:
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "year_gen")
@GenericGenerator(name = "year_gen", strategy = "com.example.generator.CustomGenerator")
@Column(name = "PROJECT_NO")
private String projectNumber;
CustomGenerator
应该实施org.hibernate.id.IdentifierGenerator
答案 1 :(得分:1)
如何将JPA注释放在getter上并使用getter方法根据需要格式化数据?
@Entity
public class MyClass {
private String projectNumber;
@Column(name = "PROJECT_NO")
public String getProjectNumber(){
return doSomeFormatting(this.projectNumber);
}
}
这样的事情应该有用。