Java 使用当前年份的JPA/Hibernate主键值序列
我正在使用Spring3和Hibernate4 我在实体类中有以下内容Java 使用当前年份的JPA/Hibernate主键值序列,java,spring,hibernate,jpa-2.0,Java,Spring,Hibernate,Jpa 2.0,我正在使用Spring3和Hibernate4 我在实体类中有以下内容 @Id @Column(name = "PROJECT_NO") private String projectNumber; 当我将值插入数据库表时,是否可以按以下格式插入作为主键的PROJECT\u NO值 20131其中2013年为当前年份,下一个字符应递增1。i、 e.下一个要插入的值应为20132 我如何使用JPA/Hibernate实现这一点呢?如何将JPA注释放在getter上,并使用g
@Id
@Column(name = "PROJECT_NO")
private String projectNumber;
当我将值插入数据库表时,是否可以按以下格式插入作为主键的PROJECT\u NO
值
20131
其中2013年为当前年份,下一个字符应递增1。i、 e.下一个要插入的值应为20132
我如何使用JPA/Hibernate实现这一点呢?如何将JPA注释放在getter上,并使用getter方法格式化数据
@Entity
public class MyClass {
private String projectNumber;
@Column(name = "PROJECT_NO")
public String getProjectNumber(){
return doSomeFormatting(this.projectNumber);
}
}
类似的方法应该可以工作。将JPA注释放在getter上,然后使用getter方法格式化数据,怎么样
@Entity
public class MyClass {
private String projectNumber;
@Column(name = "PROJECT_NO")
public String getProjectNumber(){
return doSomeFormatting(this.projectNumber);
}
}
类似的东西应该可以用。您必须查看和注释
有几种可能产生价值。在您的情况下,我认为您需要创建如下内容:
@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
,您必须查看和注释
有几种可能产生价值。在您的情况下,我认为您需要创建如下内容:
@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
我将在策略中尝试类的这种方法。谢谢N1CKOLA,在你尝试过它之后,如果它有效,一定要检查这个作为答案@给我点时间,我还没试过。一旦我尝试,我会让你知道。ThanksI将尝试这种策略类的方法。谢谢N1CKOLA,在你尝试过它之后,如果它有效,一定要检查这个作为答案@给我点时间,我还没试过。一旦我尝试,我会让你知道。谢谢