
从上图中,您可以看到MySQL数据库中的一列(表问题),其中我有一列的默认值为'Approved‘。但是,如果我创建了一个新的value实例,在对象上设置值,而不是在status列中设置status属性,而不是使用默认值。我是否需要在Java代码中设置默认值?(我坚持它的地方)
发布于 2011-11-22 22:59:02
是。当实体的持久化字段为空时,JPA不会忽略它。它在生成的insert/update语句中将该列设置为null。因此,您必须将其设置为Java中的默认值。实体的构造函数可能是设置这样的默认值的适当位置。
发布于 2011-11-22 23:03:24
是的,你需要在你的实体类中提供默认映射,因为hibernate不支持默认值(总是),你可以通过两种方式来实现:
default选项并在@Column注释中提供该值。这是数据库相关的,需要检查这是否适用于其他发帖所说的MySQL中使用"Approved“值初始化您的变量
也非常相似的帖子here
发布于 2011-11-23 21:56:08
在Java中使用缺省值是最好的。
您也可以在@Column中将insertable设置为false,但是除非进行刷新,否则对象和数据库将不同步。
EclipseLink还支持从数据库返回字段值,但仅限于Oracle (除非使用存储过程)。
https://stackoverflow.com/questions/8228795
复制相似问题