如何在Spring数据JDBC中以默认值插入

问题描述

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并非所有数据库都支持一个插入中的一个以上返回值,因此您可能必须重新选择写入数据库的数据。