2017-05-05 44 views
0

如何將JPA中Id的默認值設置爲38?我知道我可以使用@Column(length = 38)設置單個ID長度,但是如何在全局中更改它?JPA中Id的默認長度

如果這對於JPA來說是不可能的,也許是Spring Data或Hibernate?

+0

您可以使用像AbstractPersistenObject,其中定義id字段一個共同的基類。 –

+0

[這](http://stackoverflow.com/questions/197045/setting-default-values-for-columns-in-jpa)最有可能是你想要的 – XtremeBaumer

+0

默認「長度」?也許這取決於它是什麼類型。由於'@ Column'「length」僅適用於字符串(請參閱JPA javadocs),那麼您正在使用無效的東西 –

回答

0

我想你應該添加一個抽象父類的實體,這是我AbstractEntity:

@MappedSuperclass 
public class AbstractEntity { 

    @Id 
    @GeneratedValue 
    @Column(length=38) 
    private Long id; 

    @Column(name = "created_at") 
    private Date createdTime; 

    @Column(name = "updated_at") 
    private Date updatedTime; 

    @PrePersist 
    public void init() { 
     if(createdTime == null) { 
      createdTime = new Date(); 
     } 
     updatedTime = new Date(); 
    } 

    public Long getId() { 
     return id; 
    } 

    public void setId(Long id) { 
     this.id = id; 
    } 

    public Date getCreatedTime() { 
     return createdTime; 
    } 

    public void setCreatedTime(Date createdTime) { 
     this.createdTime = createdTime; 
    } 

    public Date getUpdatedTime() { 
     return updatedTime; 
    } 

    public void setUpdatedTime(Date updatedTime) { 
     this.updatedTime = updatedTime; 
    } 


}