簡體   English   中英

Java Hibernate字段訪問屬性或基於屬性的訪問

[英]Java Hibernate field access property or property based access

我正在對遺留系統進行一些改進,但需要一些時間

我有這樣的課

class MyPersistentClazz
{
      private String aTPlace;
      public void setATPlace(.......){......}//yes mistyping    
      @Column(name="atPlaceOrder")
      public String getATPlace(){return aTPlace;}
}

他們通常使用這種方法加載此類

final MyPersistentClazz clazz = (MyPersistentClazz)session.createCriteria(MyPersistentClazz.class).add(idEq(id)).uniqueResult();

並使用loadget方法,效果很好。

但是當我使用投影時會出現問題。

final Projection p=Projections.projectionList().add(Projections.property("d.aTPlace"),"aTPlace");

Exception in thread "main" org.hibernate.QueryException: could not resolve property:

我的問題是

當我使用投影時,我認為Hibernate正在調用每個屬性的setter,這個斷言可以嗎?

使用criteria.uniqueResult或加載或獲取休眠時使用單個字段屬性訪問?

或為什么與某些人一起工作而不與同一設置員一起工作?

我們僅使用注釋而不使用XML。

非常感謝。

Hibernate如何與您的bean一起使用取決於您對其進行注釋的方式。 如果您注釋實例變量,則Hibernate將使用直接注入並繞過Set方法。 否則,它將使用您的Set方法。

可能是因為您將屬性名稱錯誤地轉換為Set方法名稱嗎? 嘗試將屬性名稱更改為更簡單的名稱(不要使用該系列的大寫字母),並確保投影中屬性的大小寫正確。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM