У меня есть подразделения и сотрудники. таблица Employee имеет три колонки:Обновление сущности NPE для @ElementColection of Map
- department_id
- KEY
- VALUE
Поставлен нулевое значение в моей вставки для не ключа нулевой в таблице Employee. Я получил NullPointerException
во время моего обновления с не нулевым значением для существующего ключа во время prop.put(key, value)
:
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) по адресу 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) по адресу 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
Я имею Универмаги и работники Сущность и Департамент Entity класс имеет следующие отношения с Сотрудником Entity:
@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 допускает null). Где Hashtable в следе происходит из ... возможно, внутренней переменной EclipseLink. Также методы могут быть окончательными, если сохраняющиеся поля –