我有Department和Employee實體。 Employee表中有三列:實體更新拋出映射的@ElementClection的NPE
- DEPARTMENT_ID
- KEY
- VALUE
在我插在Employee表的非空鍵插入空值。我在我的prop.put(key, value)
與現有主要非空值更新時得到NullPointerException
:
顯示java.lang.NullPointerException在 java.util.Hashtable.put(Hashtable.java:514)在 org.eclipse.persistence .indirection.IndirectMap.put(IndirectMap.java:543) 在 org.eclipse.persistence.internal.queries.MapContainerPolicy.addInto(MapContainerPolicy.java:131) 在 org.eclipse.persistence.internal.queries.MappedKeyMapContainerPolicy .addInto(MappedKeyMapContainerPolicy.java:196) at org.eclipse.persistence.queries.DataReadQuery.executeNon光標(DataReadQuery.java:226) 在 org.eclipse.persistence.queries.DataReadQuery.executeDatabaseQuery(DataReadQuery.java:152) 在 org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:899) 在 org.eclipse.persistence.queries.DataReadQuery.execute(DataReadQuery.java:137) 在 org.eclipse.persistence.queries.DatabaseQuery.executeInUnitOfWork(DatabaseQuery.java:798) 在 org.eclipse.persistence .internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2896) at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1804) org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1786) 在 org.eclipse.persistence.internal.indirection.QueryBasedValueHolder.instantiate(QueryBasedValueHolder.java:129) 在 有機.eclipse.persistence.internal.indirection.QueryBasedValueHolder.instantiate(QueryBasedValueHolder.java:116) 在 org.eclipse.persistence.internal.indirection.DatabaseValueHolder.getValue(DatabaseValueHolder.java:89) 在 org.eclipse.persistence .internal.indirection.UnitOfWorkValueHolder.instantiateImpl(UnitOfWorkValueHolder.java:173) at org.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder.instantiate(UnitOfWor kValueHolder.java:234) 在 org.eclipse.persistence.internal.indirection.DatabaseValueHolder.getValue(DatabaseValueHolder.java:89) 在 org.eclipse.persistence.indirection.IndirectMap.buildDelegate(IndirectMap.java:109) 在 org.eclipse.persistence.indirection.IndirectMap.getDelegate(IndirectMap.java:329) 在 org.eclipse.persistence.indirection.IndirectMap.put(IndirectMap.java:543)
的EclipseLink版本是2.5。2
我有Department和Employee實體和Department實體類與僱員實體以下關係:
@Entity
@Table(name = "DEPARTMENT" uniqueConstraints = {
@UniqueConstraint(columnNames = { "NAME" }) })
@NamedQueries({
@NamedQuery(name = Department.findAll", query = "select d from Department d"),
@NamedQuery(name = Department.findByName", query = "select d from Department d WHERE d.name = :name")})
public class Department implements Serializable {
@ElementCollection
@MapKeyColumn(name = "KEY")
@Column(name = "VALUE")
@CollectionTable(name="DEPARTMENT_PROP", joinColumns = @joinColumn(name= "DEPARTMENT_ID))
private final Map<String, String> props = new HashMap();
public Map<String, String> getProperties() {
return properties;
}
我刪除了最終並仍然得到相同的問題。 – spider
您正在使用哪個java版本? – Guillermo
建議您更新有關HashMap的答案......您指的是Hashtable(HashMap允許爲空值)。跟蹤中的Hashtable來自...也許是EclipseLink內部變量。如果持續字段,方法也可以是最終的 –