2014-10-09 137 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