Java 避免Hibernate中某些方法的持久性
如以下文件所述: Hibernate保持JavaBeans样式的属性,并识别getFoo、isFoo和setFoo形式的方法名 有以下方法Java 避免Hibernate中某些方法的持久性,java,hibernate,persistence,Java,Hibernate,Persistence,如以下文件所述: Hibernate保持JavaBeans样式的属性,并识别getFoo、isFoo和setFoo形式的方法名 有以下方法 public boolean isFinished() { return (this.dateFinished == null) ? false : true; } 将导致: java.lang.ExceptionInInitializerError at (...) Caused by: org.hibernate.HibernateEx
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
开头,则一切正常。那么,是否可以避免使用注释等方法在映射类中持久化某些方法
请注意。按照中的说明,用
@Transient
注释标记字段。例如:
如中所述,用
@瞬态注释标记字段。例如:
我会说Hibernate文档并不总是让我们很容易理解这类事情…我会说Hibernate文档并不总是让我们很容易理解这类事情。。。
@Transient
public boolean isFinished() {
...
}