2015-03-13 51 views
0

我有兩個實體母校詳細模式的工作就像我在形容:的EclipseLink JTA持久性問題(空指針異常)

Stackoverflow Post: jpa-eclipselink-onetomany-derived-ids-fail

模式的工作原理與本地資源預期,但是當我嘗試移動該示例用JTA網絡環境GlassFish4.1(JSF),我得到以下錯誤:

Advertencia:DTX5014:在beforeCompletion中捕獲的異常()回調:在entidades.OrderItemPK._persistence_set 顯示java.lang.NullPointerException( OrderItemPK.java)

持久性類的源代碼:

import java.util.List; 
import javax.persistence.Query; 
import javax.persistence.EntityManager; 
import java.util.List; 
import javax.persistence.Query; 
import javax.persistence.EntityManager; 


public abstract class AbstractFacade<T> { 

    private Class<T> entityClass; 
    protected abstract EntityManager getEntityManager();  

    public AbstractFacade(Class<T> entityClass) { 
    this.entityClass = entityClass; 
    } 

    public void create(T entity) { 
    getEntityManager().persist(entity); 
    } 

    public T edit(T entity) { 
    return getEntityManager().merge(entity); 
    } 

    public void remove(T entity) { 
    getEntityManager().remove(getEntityManager().merge(entity)); 
    } 

我用這兩種方法創建和編輯嘗試。任何想法我做錯了,建議是受歡迎的。

+0

假設使用的是具有一個可嵌入的mapsId例如錯誤,這個錯誤發生時?即當你創建一個新的實例,或編輯一個現有的實例嗎?如果它是一個已被修改的現有實例,那麼您如何閱讀它以及正在進行哪些更改?如果使用PK類而不是embeddedId,會發生同樣的問題嗎? – Chris 2015-03-13 20:08:31

+0

所有實體都是新實例,到目前爲止,我堅持使用「創建」方法,我無法使其工作,也無法使其與PK類映射實體工作 – Hickaru 2015-03-14 00:35:12

回答

0

的問題是在PK類,改變數據int類型爲整數,然後出現在hashcode()方法

0

您的實體正在使用不允許爲null的基本「長」類型,因此請檢查您的數據庫值是否爲空。如果是,快速修復是將包裝類型改爲「長」:http://edwin.baculsoft.com/2012/02/nullpointerexception-when-using-jpa/ 如果是這種情況,則需要跟蹤與主鍵關聯的字段的空值填充數據庫的方式。

+0

感謝您的關注,我可以找到修復方法我的問題,我會作爲答案 – Hickaru 2015-03-17 14:27:15