2010-07-05 39 views
0

我在hibernate/JavaBeans如何構造屬性名稱時遇到了問題。Hibernate屬性名大寫問題

這是我的財產。

private boolean aNumberFl; 

@Column(name = "aNumberFl", nullable = false) 
@Type(type = "yes_no") 
public boolean getANumberFl() 
{ 
    return aNumberFl; 
} 

public void setANumberFl(boolean var) 
{ 
    this.aNumberFl = var; 
} 

除了事實上hibernate內部認爲我的屬性名是ANumberFl而不是aNumberFl,一切都很好。 JavaBean約定檢查屬性getter的前兩個字符(在get之後),以及它們是否都是大寫字母,並且沒有取消屬性以獲取屬性名稱。但是,這與我的字段名稱不一致,後者具有小寫字母。這在JavaBean世界中都是允許的,但有一個名爲aNumberFlANumberFl的字段將產生相同的getter名稱。這意味着當get方法是源代碼時,它必須選擇其中一個,並選擇後者。

我嘗試將註釋移動到字段上,但這導致了其他問題,我現在不會涉及,但我不確定這是否是一個好主意。

是否有覆蓋默認的屬性名稱,hibernate從getter方法名稱推斷?

謝謝。

回答

1

我會建議,以重命名屬性,並給它一個更有意義的名稱

  • 刪除a - 如果是「A-數」,和你有一個「B-數」,使屬性大寫 - 醜陋,但可能工作。
  • Fl並不意味着什麼 - 擴大這個縮寫,一切都會好的。