2009-06-01 68 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