2017-05-05 75 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; 
    } 


}