Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用当前年份的JPA/Hibernate主键值序列_Java_Spring_Hibernate_Jpa 2.0 - Fatal编程技术网

Java 使用当前年份的JPA/Hibernate主键值序列

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

我正在使用Spring3和Hibernate4

我在实体类中有以下内容

    @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,在你尝试过它之后,如果它有效,一定要检查这个作为答案@给我点时间,我还没试过。一旦我尝试,我会让你知道。谢谢