EclipseLink JTA 持久性问题(空指针异常)



我有两个实体在Mater Detail模式中工作,就像我在:

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

该模式与本地资源按预期工作,但是当我尝试将示例移动到带有 JTA 的 Web 环境 GlassFish4.1 (JSF) 时,我收到以下错误:

广告: DTX5014: 在 beforeCompletion() 回调中捕获异常:java.lang.NullPointerException at entidades.OrderItemPK._persistence_set(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));
    }

我尝试了两种创建和编辑方法。任何知道我做错了什么,欢迎提出建议。

您的实体正在使用不允许 null 的基本"long"类型,因此请检查您的数据库值是否不为 null。 如果是,快速解决方法是将包装器类型更改为包装器类型"Long":http://edwin.baculsoft.com/2012/02/nullpointerexception-when-using-jpa/如果是这种情况,您将需要跟踪数据库是如何用与主键关联的字段的 null 值填充的。

问题出在 PK 类中,将数据类型 int 更改为 Integer,然后错误出现在方法 hashCode() 上

最新更新