问题描述
CrudRepository#save
不允许您使用默认列。实体的空字段被解释为NULL
而不是DEFAULT
。
如果我使用自定义@Query("INSERT INTO ... DEFAULT ...")
,则I'm unable to obtain the ID of the inserted row.
解决方法
当前没有使用数据库默认值的方法。
虽然@Jay的答案并非针对Spring Data JDBC,但在构造函数中将属性设置为其默认值的方法确实适用于Spring Data JDBC。
另一种选择是实现一个自定义方法,该方法执行插入操作并从数据库中检索默认值。
AFAIK并非所有数据库都支持一个插入中的一个以上返回值,因此您可能必须重新选择写入数据库的数据。