Jpa EclipseLink的executeObjectLevelReadQuery中出现空指针异常
我在项目中使用eclipseLink 2.5.2,有时会出现以下异常:Jpa EclipseLink的executeObjectLevelReadQuery中出现空指针异常,jpa,oracle11g,eclipselink,Jpa,Oracle11g,Eclipselink,我在项目中使用eclipseLink 2.5.2,有时会出现以下异常: java.lang.NullPointerException at org.eclipse.persistence.queries.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:431) at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery
java.lang.NullPointerException
at org.eclipse.persistence.queries.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:431)
at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:1168)
at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:899)
at org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1127)
at org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAllQuery.java:403)
at org.eclipse.persistence.internal.sessions.AbstractSession.internalExecuteQuery(AbstractSession.java:3214)
at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1804)
at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1786)
at org.eclipse.persistence.mappings.CollectionMapping.executeBatchQuery(CollectionMapping.java:974)
at org.eclipse.persistence.mappings.ForeignReferenceMapping.extractResultFromBatchQuery(ForeignReferenceMapping.java:643)
at org.eclipse.persistence.mappings.CollectionMapping.extractResultFromBatchQuery(CollectionMapping.java:955)
at org.eclipse.persistence.internal.indirection.BatchValueHolder.instantiate(BatchValueHolder.java:58)
at org.eclipse.persistence.internal.indirection.QueryBasedValueHolder.instantiate(QueryBasedValueHolder.java:116)
at org.eclipse.persistence.internal.indirection.DatabaseValueHolder.getValue(DatabaseValueHolder.java:89)
at org.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder.instantiateImpl(UnitOfWorkValueHolder.java:173)
at org.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder.instantiate(UnitOfWorkValueHolder.java:234)
at org.eclipse.persistence.internal.indirection.DatabaseValueHolder.getValue(DatabaseValueHolder.java:89)
at org.eclipse.persistence.indirection.IndirectSet.buildDelegate(IndirectSet.java:211)
at org.eclipse.persistence.indirection.IndirectSet.getDelegate(IndirectSet.java:375)
at org.eclipse.persistence.indirection.IndirectSet.contains(IndirectSet.java:349)
at com.services.CategoryServiceImpl.categoryContainsCareType(CategoryServiceImpl.java:305)
at
这是定义careType和category之间关系的部分,调用category.getCareTypes()
时会发生异常:
@ManyToMany(targetEntity=CareTypeJPAImpl.class) @JoinTable(
name="J_CARE_TYPE_CATEGORY",
joinColumns={@JoinColumn(name="CATEGORY_ID", referencedColumnName="ID")},
inverseJoinColumns={@JoinColumn(name="CARE_TYPE_ID", referencedColumnName="ID")})
@org.eclipse.persistence.annotations.BatchFetch(value=org.eclipse.persistence.annotations.BatchFetchType.JOIN,size=990)
private Set<CareType> careTypes = new HashSet<CareType>();
@ManyToMany(targetEntity=CareTypeJPAImpl.class)@JoinTable(
name=“J_护理类型_类别”,
joinColumns={@JoinColumn(name=“CATEGORY\u ID”,referencedColumnName=“ID”)},
inverseJoinColumns={@JoinColumn(name=“CARE\u TYPE\u ID”,referencedColumnName=“ID”)})
@org.eclipse.persistence.annotations.BatchFetch(value=org.eclipse.persistence.annotations.BatchFetchType.JOIN,size=990)
private Set careTypes=new HashSet();
我看了这本书,但不太明白