在MariaDB 10.2中,可以为Datetime类型的列定义默认值,例如created和lastModified。
我应该如何访问这些只读字段?因为这些值应该只由数据库控制,不应该从代码中进行修改,但是我希望在代码中能够读取这些属性。
很简单。只需要将insertable
和updatable
属性设置为false
即可。
@Column(
name = "created_on",
insertable = false,
updatable = false
)
private Timestamp createdOn;
您可以使用:
@Column(updatable=false, insertable=false)
private YourType field;
@Column
用于指定持久化属性或字段的映射列,具体来说是 javax.persistence.Column
。
JpaRepository
方法:someObjectsRepository.deleteById(someObjectId)
删除someobject
时,我遇到了一个java.sql.SQLSyntaxErrorException: Unknown column 'someobject0_.somereadonlyfield' in 'field list'
错误。自定义删除查询帮了我一个大忙:@Query("delete from someobject where id = :someObjectId", nativeQuery = true)
。 - Yamashiro Rion