我正在使用带有下划线的字段名前缀的约定。当我使用这些字段生成注释实体类时,我坚持在查询中使用下划线前缀属性名称。我想避免这种情况,并且能够做到:
@Entity
public class Container {
private String _value;
}
// in a lookup method
executeQuery("from Container where value = ?", value);
一般情况下是JPA还是特别是Hibernate?
更新:仍在尝试记住原因,但我需要在字段上注释而不是在getter上注释。
答案 0 :(得分:4)
您可以注释getter:
@Entity
public class Container {
private String _value;
@Column
public String getValue()
{
return _value;
}
public void setValue( String value )
{
this._value = value;
}
}
答案 1 :(得分:1)
您也许可以编写生成的实体类的子类,它们上面有getter方法,然后将实体管理器配置为使用getter / setter访问而不是字段访问?那么你的getter / setter可以有你喜欢的任何名字。
答案 2 :(得分:0)
看看NamingStrategy
。扩展DefaultNamingStrategy
并覆盖columnName
方法以去除第一个下划线(如果它在那里)将相当容易。