2014-10-09 116 views
0

我在Glassfish 4上使用JPA 2.1和Hibernate 4.3.x,也嘗試了在https://coderwall.com/p/e5fxrw列出的建議,仍然得到以下錯誤。有人能告訴我可能是什麼問題嗎?無法通過反射來獲取字段值hibernate JPA + GF 4

javax.persistence.PersistenceException:org.hibernate.PropertyAccessException:無法通過com.dstar.entity.PurchaseOrder.idpurchaseorder

下面的反射吸氣得到一個字段的值是實體代碼,跳過getter和setter方法:

@Entity 
@Table(name="purchaseorder") 
@PersistenceUnit(name="dstarwarehouse",unitName="dstarwarehouse") 
public class PurchaseOrder implements Serializable{ 

    @Id @GeneratedValue(strategy=GenerationType.AUTO) 
    private int idpurchaseorder; 
    private boolean cash; 
    private boolean credit; 
    private String supplier; 
    private String orderedBy; 
    private String submittedBy; 
    private String approvedBy; 
    private Date expectedDate; 
    private Date creationDate; 
    private Date submittedDate; 
    private Date approvalDate; 
    private String purchaserName; 

    private double total; 

    @JoinColumn(name="idpurchaseorder", referencedColumnName="idpurchaseorder") 
    private List<Part> parts; 

}

+0

當你得到這個異常時,你到底在做什麼?請詳細說明您的問題,以便人們可以更有效地幫助您。 – jpangamarca 2014-10-26 13:31:27

回答

1

我有同樣的問題,使用的是GlassFish 4.1,休眠4.3.6,和注射通@PersistenceContext實體管理器在無狀態會話bean,並看到了一些有趣的事情。首先,如果我從Persistence.createEntityManagerFactory(「xxxxxx」)。createEntityManager()直接得到實體管理器,問題就會消失。很顯然,我不喜歡這樣做。

將服務器從glassfish 4.1更改爲glassfish 4,似乎也解決了問題。所以,在這個時候,這個問題在glassfish 4.1中看起來有點不對勁。

+0

當然我會嘗試切換到GF4。我只是試圖堅持實體。 – Ayub 2014-10-27 15:32:40

+1

您是否嘗試過直接使用實體管理器而不是通過@PersistenteContext注入?無論如何,當我將GF 4.1更改爲4.0時,堅持運作。 – Tiago 2014-10-27 22:38:13

+0

對不起,你是對的,沒有glassfish版本的具體問題。 – Tiago 2014-10-28 00:00:10