0

Spring 3 と Hibernate 4 を使用しています

私はエンティティクラスに次のものを持っています

    @Id
    @Column(name = "PROJECT_NO")
    private String projectNumber;

データベーステーブルに値を挿入するときPROJECT_NO、主キーである値を次の形式で挿入することはできますか?

20131ここで、2013 は現在の年であり、次の文字は 1 ずつ増加する必要があります。つまり、次に挿入する値は20132

JPA/Hibernateを使用してこれを達成するにはどうすればよいですか

4

2 に答える 2

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

于 2013-02-27T08:44:52.687 に答える
1

ゲッターにJPAアノテーションを付け、ゲッターメソッドを使用してデータを好きなようにフォーマットするのはどうですか?

@Entity
public class MyClass {
 private String projectNumber;

 @Column(name = "PROJECT_NO")
 public String getProjectNumber(){
  return doSomeFormatting(this.projectNumber);
 }
}

そのようなものが機能するはずです。

于 2013-02-27T08:42:51.877 に答える