没有getter的Hibernate映射

时间:2012-02-20 16:51:31

标签: java hibernate

我必须将属性映射到一列

 <class name="Account" table="list">

  ...

<property name="creationDate" type="jodaTime" column="accdatetm" insert="false" update="false"/>
<property name="anotherDate" type="jodaTime" column="accdatetm" insert="false" update="false"/>  

creationDateAccount

中有setter和getter

anotherDate没有Account

中的setter和getter

我收到了错误

PropertyNotFoundException: Could not find a getter for anotherDate  

如果我不想要财产的getter和setter,但想拥有一个属性,我该怎么办?

3 个答案:

答案 0 :(得分:1)

  

如果我不想要财产的getter和setter,但想拥有一个属性,我该怎么办?

改变主意,最好使用getter和setter进行封装并保持bean标准。

答案 1 :(得分:0)

如果你想以任何方式交互/显示数据库字段“createDate”或“anotherDate”,你将需要一个getter。 Hibernate假定您将使用已声明的属性,并告诉您没有支持的方法可以在不创建getter的情况下使用它。如果您不想使用db字段,则不要将其作为XML映射中的属性包含在内。如果这不能解答您的问题,请通过引用数据库中听起来不像您想要使用的字段,向我提供有关您要完成的更多详细信息。希望这可以帮助。

答案 2 :(得分:0)

您可能知道,Hibernate允许您指定字段或属性访问权限。检查this,但不能混合使用同一个实体。如果您想混合,请按照上面链接中的说明实施您自己的org.hibernate.property.PropertyAccessor。当没有找到getter或setter时,你可以从org.hibernate.property.BasicPropertyAccessor开始并委托给org.hibernate.property.DirectPropertyAccessor

正如其他人的建议,遵循一个惯例而不是经历所有这些更简单,但有时你无法避免疯狂的情况:)