Ответ 1
Проблема заключалась в том, что после сохранения был еще один запрос, который обновлял базу данных с нулевым значением. Таким образом, ответ заключался в том, чтобы изменить это значение в запросе обновления. Спасибо всем.
У меня возникла проблема при попытке сохранить класс модели данных в базе данных. У меня такой класс:
class DataModelClass{
//some more field etc.
@Column(name = "number1", nullable = true)
private Integer number1;
@Column(name = "number2", nullable = true)
private Integer number2;
public DataModelClass(){}
(...)
public Integer getNumber2() {
return number2;
}
public void setNumber2( Integer number2 ) {
this.number2= number2;
}
}
Второе поле было добавлено после первого. Когда нужно сохранить объект, созданный с помощью этого класса, через:
em.persist(dataModelClass);
Создается новая строка в базе данных, но только с добавлением первого поля. Второй пустой. Когда я отлаживаю объект dataModelClass
, каждое поле задается с некоторым целым значением. Когда я добавив значение для number2
через pgAdmin, а затем извлечение этой строки с кодом Java с помощью:
DataModelClass dmc = em.find(DataModelClass.class, 1);
Чем dmc.getNumber2()
не пуст /null.
У кого-нибудь есть идеи, что не так?
[Edit] Возможно, это поможет немного больше. В классе данных (DataModelClass) я получил эту аннотацию:
@Entity
@Table(name = "custom_table",
[email protected](name="UK_example_foreign_id", columnNames={"example_foreign_id"})
)
@SequenceGenerator(name = DataModelClass.SEQ_NAME, sequenceName = DataModelClass.SEQ_NAME, allocationSize = 1)
Очевидно, что это поле существует в моем классе
Проблема заключалась в том, что после сохранения был еще один запрос, который обновлял базу данных с нулевым значением. Таким образом, ответ заключался в том, чтобы изменить это значение в запросе обновления. Спасибо всем.
Я бы проверял, обновлена ли моя база данных как класс сущности.