2015-06-29 41 views
0

如果我使用JPA的註解來指定我映射的字段,就像這樣:使用JPA批註時,是否需要遵循bean命名約定?

public class PersistedEmployee { 
    private Integer id; 

    @Id//Plus some @GeneratedValue cruft in the real example 
    public Integer getId() { 
    return id; 
    } 
    public void setId(final Integer id) { 
    this.id = id; 
    } 
} 

這是否ID 需要遵循getFoo豆命名約定?還是足夠的註釋來確定如何映射此POJO?

底層提供程序是Hibernate,在這種情況下,但我也很好奇,如果這有所作爲與否。

+1

你能解釋一下「bean命名約定」是什麼意思嗎?你究竟想要實現什麼?您是否希望數據庫爲此列使用不同的名稱?或者你想讓'get'方法的名稱不同? – DuncanKinnear

+2

取決於。如果您使用字段級訪問,則訪問器方法無關緊要;甚至不需要存在。 –

+0

@DuncanKinnear理想情況下,我想要有像'foo()'這樣的訪問器方法,而不是JavaBeans風格的'getFoo()'。就我所見,這些示例都顯示get-和set-style屬性訪問器,所以不清楚它是必需的還是僅僅是約定。 –

回答

0

JPA支持兩種訪問屬性的方式。無論是通過getter和setter,還是通過反射直接訪問該字段。

如果你使用第一個,getters和setters需要遵循適當的命名約定,如果你使用第二個,他們不必存在,你可以使用你喜歡的任何訪問器/ mutator。

使用什麼訪問類型由您放置@id註釋的地方定義。如果它在一個字段上,則使用字段訪問。如果它在getter/setter屬性上,則使用訪問權限。

0

JPA規格。

The persistent state of an entity is accessed by the persistence provider 
runtime either via JavaBeans style property accessors (「property 
access」) or via instance variables (「field access」). 

這是公開可用的,所以如果使用JPA你確實應該得到它,或一本書/文檔呈現它。

相關問題