JPA - 默认值

时间:2013-09-19 08:29:03

标签: jpa insert eclipselink

我正在开发一个JPA应用程序,我正在使用eclipse链接提供程序。

我有一个表T1,其字段F1定义为非空且具有默认值('U')。

我已经定义了一个映射到表T1的实体。该实体具有映射到字段F1的属性,并且我已使用注释@ReturnInsert(returnOnly = true)配置了该属性。

文档说:

  

使用@ReturnInsert导致INSERT操作将值返回到正在写入的对象

如果我在映射到F1的属性中持有没有值的实体,一切正常。插入后,实体将自动填充默认值,并在数据库中插入记录。

但是如果我尝试持有一个具有不同值(没有默认值)的实体,则会将一条记录插入到数据库中,但是字段F1的值是默认值,而它应该是我在实体中设置的值

为什么会这样?我想要的只是更改默认值。

由于

1 个答案:

答案 0 :(得分:0)

我在数据库中为字段设置默认值的方法是:

  1. 为数据库中的该字段定义默认值
  2. 将实体中的相应属性设为只读。
  3. 例如,对于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;
    

    通过这样做,我得到了一个字段,当插入一个新字段时,该字段总是由数据库自动设置。