Hibernate属性名称大小写问题

时间:2010-07-05 12:50:01

标签: java hibernate properties javabeans capitalization

我对hibernate / JavaBeans如何构造属性名称有疑问。

这是我的财产。

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之后),如果它们都是大写字母,并且没有uncapatilise来获取属性名称。但是这与我的字段名称不一致,后者具有小写字母。这在JavaBean世界中是允许的,但是具有名为aNumberFl OR ANumberFl的字段将产生相同的getter名称。这意味着当get方法是源时,它必须选择另一个方法,然后选择后者。

我尝试将注释移到了现场,但这引起了其他我现在不会涉及的问题,而且我不确定这是个好主意。

是否有覆盖默认属性名称的hibernate从getter方法名称推断?

感谢。

1 个答案:

答案 0 :(得分:1)

我建议重命名该属性并给它一个更有意义的名称

  • 删除a - 如果是“A-Number”,并且您有一个“B-Number”,请将该属性设为大写 ​​- 丑陋,但可能有效。
  • Fl没有任何意义 - 扩展该缩写,一切都会好的。