尝试将数据模型类持久化到数据库中时遇到问题。我有这样的课程:
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
时,每个字段都设置了一些整数值。
当我通过pgAdmin为number2
添加一个值,然后通过以下方式使用Java代码检索该行:
DataModelClass dmc = em.find(DataModelClass.class, 1);
dmc.getNumber2()
不能为空/空。
任何人都有什么错吗?
[编辑] 也许会有所帮助,在数据模型(DataModelClass)类上,我得到了以下注释:
@Entity
@Table(name = "custom_table",
uniqueConstraints=@UniqueConstraint(name="UK_example_foreign_id", columnNames={"example_foreign_id"})
)
@SequenceGenerator(name = DataModelClass.SEQ_NAME, sequenceName = DataModelClass.SEQ_NAME, allocationSize = 1)
很明显,该字段在我的班级中存在
答案 0 :(得分:2)
我将检查数据库是否已更新为实体类。
答案 1 :(得分:2)
问题是,持久化之后还有另一个查询正在使用空值更新数据库。因此,答案是在更新查询中更改此值。 谢谢大家。