我正在开发一个JPA应用程序,我正在使用eclipse链接提供程序。
我有一个表T1,其字段F1定义为非空且具有默认值('U')。
我已经定义了一个映射到表T1的实体。该实体具有映射到字段F1的属性,并且我已使用注释@ReturnInsert(returnOnly = true)配置了该属性。
文档说:
使用@ReturnInsert导致INSERT操作将值返回到正在写入的对象
如果我在映射到F1的属性中持有没有值的实体,一切正常。插入后,实体将自动填充默认值,并在数据库中插入记录。
但是如果我尝试持有一个具有不同值(没有默认值)的实体,则会将一条记录插入到数据库中,但是字段F1的值是默认值,而它应该是我在实体中设置的值
为什么会这样?我想要的只是更改默认值。
由于
答案 0 :(得分:0)
我在数据库中为字段设置默认值的方法是:
例如,对于Date字段,您可以这样做:
DB中的
reg_date DATE NOT NULL DEFAULT CURRENT_DATE
实体:
@Basic(optional=false)
@Temporal(TemporalType.DATE)
@Column(name = "reg_date", insertable= false)
private Date regDate;
通过这样做,我得到了一个字段,当插入一个新字段时,该字段总是由数据库自动设置。