2011-03-10 35 views
7

我能做些什麼JPA(我使用Hibernate)創建帶有無符號類型的列?目前我所有的ID列都已簽名。在JPA和休眠狀態下無符號整數

+3

未簽名的SQL類型或Java類型? Java沒有原生的無符號數字類型。如果您想使用未簽名的SQL類型,則必須將其映射到足夠大(帶符號)的Java類型。例如,一個無符號的32位整數類型必須存儲在一個(有符號的)Java long中。 – 2011-03-10 14:32:34

+0

我想使用無符號的SQL類型。 – Laures 2011-03-10 14:35:51

+1

然後答案是將這些映射到Java'long'字段。 – 2011-03-10 14:36:29

回答

13

使用columnDefinition property on the @Column annotation應該這樣做。在SQL類型隔空猜測你要去爲:

private long foo; 

@Column(columnDefinition = "UNSIGNED INT(11)") 
public long getFoo() 
{ 
    return foo; 
} 

注:並非所有的數據庫(如SQL Server,我認爲)都支持unsigned int類型。

+0

在MySQL中,「INT(11)」之後應該出現「UNSIGNED」一詞。 – naXa 2017-01-24 13:31:12