避免在Hibernate中持久化某些方法

时间:2010-12-17 00:14:44

标签: java hibernate persistence

正如documentation中所述:

  

Hibernate持久保存JavaBeans样式属性,并识别getFoo,isFoo和setFoo形式的方法名称。

有以下方法

public boolean isFinished() {
    return (this.dateFinished == null) ? false : true;
}

会导致:

java.lang.ExceptionInInitializerError
    at (...)
Caused by: org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]
(...)
Caused by: org.hibernate.PropertyNotFoundException: Could not find a setter for property finished in class Order

显然,如果上述函数的名称不以is开头,一切都很好。那么,是否有可能避免某些方法在映射类中持久化,例如使用例如注释?

请建议。

1 个答案:

答案 0 :(得分:1)

使用docs中所述的@Transient注释标记该字段。如,

@Transient
public boolean isFinished() {
    ...
}