繁体   English   中英

使用当前年份的JPA /休眠主键值序列

[英]JPA/Hibernate primary key value sequence using current year

我正在使用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);
 }
}

这样的事情应该起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM