我正在使用 Spring 3 和 Hibernate 4
我在实体类中有以下内容
@Id
@Column(name = "PROJECT_NO")
private String projectNumber;
当我将值插入数据库表时,是否可以PROJECT_NO
按以下格式插入作为主键的值
20131
其中 2013 是当前年份,下一个字符应递增 1。即下一个要插入的值应该是20132
如何使用 JPA/Hibernate 实现这一点
您必须查看@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
将 JPA 注解放在 getter 上,并使用 getter 方法按您的喜好格式化数据怎么样?
@Entity
public class MyClass {
private String projectNumber;
@Column(name = "PROJECT_NO")
public String getProjectNumber(){
return doSomeFormatting(this.projectNumber);
}
}
像这样的东西应该工作。