【发布时间】:2019-02-01 22:13:48
【问题描述】:
我在尝试将数据模型类持久保存到数据库时遇到问题。我有这样的课:
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() 不为空/null。
有人知道什么是错的吗?
[编辑] 也许它会有所帮助,在数据模型(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)
显然这个字段存在于我的班级中
【问题讨论】:
-
你能展示更多DataModelClass的代码吗? number2的setter长什么样子?
-
是的,我确实添加了更多示例代码
-
启用 sql 查询日志记录。
-
在 sql 查询日志中我看不到任何有趣的东西
-
尝试为 number2 设置一个值。
标签: java postgresql hibernate jpa