2013-02-27 46 views
0

我使用Spring 3和Hibernate 4JPA/Hibernate的主鍵值順序使用當年

我在實體類

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

下面我將值插入數據庫表中,是否有可能插入PROJECT_NO值,它是以下格式的主鍵

20131其中2013是當前年份,下一個字符應該是1遞增。要插入即下一個值應該是20132

我怎樣才能做到這一點使用JPA/Hibernate的

回答

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

+0

我會嘗試一類的這種戰略方式。謝謝n1ckolas – user75ponic 2013-02-27 09:51:08

+0

並且在您嘗試過之後(if)它可以正常工作,一定要檢查這個答案! – arcy 2013-02-27 11:46:26

+0

@Polppan爲你做這個工作? – n1ckolas 2013-02-28 10:44:00

1

怎麼樣把吸氣劑的JPA註釋和使用getter方法,只要你喜歡格式化的數據?

@Entity 
public class MyClass { 
private String projectNumber; 

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

類似的東西應該工作。