2009-06-01 89 views
4

我使用的是下劃線前綴的字段名的約定。當我使用這些字段生成註釋實體類時,我堅持在查詢中使用帶下劃線的前綴屬性名稱。我想避免這種情況,並且能夠做到:修改屬性名稱在JPA查詢

@Entity 
public class Container { 

    private String _value; 
} 

// in a lookup method 
executeQuery("from Container where value = ?", value); 

那是可能的JPA一般或特別休眠?


更新:仍在試圖記得爲什麼,但我需要這是對字段,而不是在干將註解。

回答

4

您可以批註,吸氣:

@Entity 
public class Container { 

    private String _value; 

    @Column 
    public String getValue() 
    { 
     return _value; 
    } 

    public void setValue(String value) 
    { 
     this._value = value; 
    } 

} 
+0

也許不是如果類生成選項,雖然。 – skaffman 2009-06-01 13:48:43

1

也許你可以寫你生成的實體類的子類,這對他們的getter方法,然後配置到使用getter/setter來訪問,而不是如果字段訪問實體管理器?然後你的getter/setter可以有你喜歡的任何名字。

0

看一看NamingStrategy。這將是相當容易延長DefaultNamingStrategy並重寫columnName方法剝離第一下劃線(如果它是存在的)。

+0

你確定這是在屬性名稱而不是在數據庫列名中進行處理嗎? javadoc聲明它是'一組用於確定給定映射文檔中的信息的物理列和表名稱的規則。' – 2009-06-10 19:38:28