2010-12-17 32 views
1

正如在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

docs中所述用@Transient註釋標記字段。例如,

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

謝謝,它完美的作品。我很慚愧我沒有自己找到它... – laszchamachla 2010-12-17 00:30:45

+0

我會說Hibernate文檔並不總是很容易找出這些東西...... – ig0774 2010-12-17 00:41:57