【问题标题】:Default value for data type int is not getting set using JPA 1.9 (postgresql)未使用 JPA 1.9 (postgresql) 设置数据类型 int 的默认值
【发布时间】:2020-02-14 08:40:58
【问题描述】:

我正在为我的项目使用 postgreSQL 9.3.1、spring 4 和 JPA 1.9。我需要使用下面的 JPA 代码为数据库中的一列设置默认值。我也尝试过在代码中传递数据类型“整数”和“整数”。但是仍然没有设置默认值。任何人都可以建议我缺少什么或我需要为 JPA 1.9 做的任何设置吗?

提前致谢。

@Column(name="cust_id",columnDefinition = "int default 0", nullable = false)

private int cust_Id=0;

【问题讨论】:

  • 没有 JPA 1.9。另外默认值是插入数据库,它不会在字段本身中设置默认值(只有从数据库中再次读取后,该字段不会自动更新)。
  • 在我的项目中,pom.xml 中存在依赖项“spring-data-jpa 1.9.0”。如果我没有为 cust_Id 设置值,则插入数据库时​​,必须在此 cust_Id 列中设置默认值,即 0,这发生在 mysql 中。所以请让我知道为什么它不能与 postgresql 一起使用
  • 你不能不设置一个值,因为它是一个原始值,它总是有一个值,即0。除非该字段实际上是Integer,否则它可以被取消设置为null

标签: spring jpa spring-data-jpa


【解决方案1】:

您必须使用 @dynamic-insert 注释,因此 Hibernate 不包含具有空值的列。

参考:https://blog.knoldus.com/how-to-set-default-column-value-in-jpa/

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
  • 好的,我会处理的。我是新来的,所以会从反馈中学习:)
  • 当然,没问题。这些评论由社区留下,以提高答案和整体内容的质量。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-23
  • 2018-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多