非空约束上的 Hibernate JoinColumn 错误

2023-12-11

这是我的课程列表

@MappedSuperclass
public abstract class JpaModel {

    @Id
    @Column(name ="ID", columnDefinition = "serial")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
}

产品实体

@Entity
@Table(name = "REF_PRODUCT")
public class Product extends JpaModel{

    @Column(name= "NAME")
    private String name;

    @Column(name = "MANUFACTURER")
    private String manufacturer;

    /**
     * Work around for missing
     */
    @OneToOne(optional = true)
    @JoinColumn(name="id")
    private InventoryItemPicture picture;

.... }

和库存物品图片实体

@Entity
@Table(name = "TXN_INVENTORY_PICTURE")
public class InventoryItemPicture extends JpaModel{

    @Column
    private byte[] image;

    @Column
    private String fileName;

保存产品时, inventoryItemPicture 是可选的,因此有时它会为空值,这是我希望发生的事情。但是,在使用空值保存产品实体时,会出现此错误。

Caused by: org.postgresql.util.PSQLException: ERROR: null value in column "id" violates not-null constraint
  Detail: Failing row contains (null, null, test, dsadas, sdas, dsadsa, 500.00, 1000.00, 1500.00, 5, PRODUCT).
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2198)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1927)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:561)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:419)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:365)
    at com.zaxxer.hikari.proxy.PreparedStatementProxy.executeUpdate(PreparedStatementProxy.java:61)
    at com.zaxxer.hikari.proxy.PreparedStatementJavassistProxy.executeUpdate(PreparedStatementJavassistProxy.java)
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:208)
    ... 120 more

从你的日志可以看出id=null,与 inventoryItemPicture 完全无关。

问题是在@GeneratedValue(strategy = GenerationType.IDENTITY)

您的日志显示您正在使用 postgresql,但“IDENTITY”只能用于这些数据库:

  • Sybase、My SQL、MS SQL Server、DB2 和 HypersonicSQL。

你应该使用GenerationType.SEQUENCE,其支持者:

  • Oracle、DB2、SAP DB、Postgre SQL 或 McKoi。

尝试将您的代码更改为:

@GeneratedValue(strategy = GenerationType.SEQUENCE)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

非空约束上的 Hibernate JoinColumn 错误 的相关文章

  • 了解 netty 通道缓冲区和水印

    我正在尝试了解网络缓冲区和水印 作为一个测试用例 我有一个 netty 服务器 它向客户端写入数据 客户端被阻止 基本上每次读取之间有 10 秒的睡眠时间 在正常 I O 下 如果接收方被阻塞 TCP 发送方将受到限制 由于流量控制 发送速
  • java 中的梵文 i18n

    我正在尝试使用来自互联网的示例 ttf 文件在 java 中使用 i18n 进行梵文 印地文 我可以加载资源包条目 还可以加载 ttf 并设置字体 但它不会根据需要呈现 jlabel 它显示块代替字符 如果我在 Eclipse 中调试 我可
  • 如何从 Java 访问 Windows 设备管理器中的信息?

    我有一个串行 USB 设备 并且其中多个设备可以连接到计算机 我需要查询和检索设备连接到的 COM 端口列表 在 Windows 设备管理器中 您可以获得当前连接的设备的 COM 端口 友好名称 该列表是动态的 从注册表中读取不工作 htt
  • Apache Thrift Java-Javascript 通信

    我正在编写一个基于 Apache Thrift 的 Java 服务器 它将从 Javascript 客户端接收数据 我已经完成了 Java 服务器 但问题是我可以获得 Javascript 客户端的工作示例 我无法找到一个好的示例 构建文档
  • 获取Android库中的上下文

    我正在编写一个 Android 应用程序 它的一些功能封装在内部库中 但是 要使此功能发挥作用 库需要一个应用程序上下文的实例 为图书馆提供这种上下文的最佳方式是什么 我看到了一些选择 但没有一个有吸引力 Have my library c
  • Java Junit 测试 HTTP POST 请求

    我需要测试以下方法而不改变方法本身 该方法向服务器发出 POST 方法 但我需要制作一个独立于服务器的测试用例 在将其重定向到本地文件之前 我测试了类似的方法 但为此我将协议指定为文件 主机名指定为 localhost 端口指定为 1 我的
  • 未注入带有 JPA2 的 Apache Ignite 2.7 IgniteRepository

    使用在 Web 上建立的 guildes 我使用 Spring Data JPA 2 应用程序制作了简单的 Spring Boot 2 仅在 2 7 版本中才向 Apache Ignite 添加了 Spring Boot JPA 2 支持
  • 使用 kryo 注册课程的策略

    我最近发现了 kryonet 库 它非常棒并且非常适合我的需求 然而 我遇到的一个问题是制定一种好的策略来注册所有可以转移的类 我知道我可以在每个对象中编写一个静态方法 该方法将返回它使用的所有类的列表 但我真的不想这样做 为了我自己的时间
  • 如何将此本机 SQL 查询转换为 HQL

    所以我有这个很长的复杂的 Native SQLQuery string hql SELECT FROM SELECT a rownum r FROM select f2 filmid f2 realisateurid f2 titre f2
  • FileObserver 不适用于 Android 6.0 Marshmallow (API 23) 中的外部存储

    我有一个应用程序可以观察外部存储上的公共目录FileObserver 它运行良好Lollipop设备 我想添加对Marshmallow 所以我用它设置了一台 Nexus 9 平板电脑 在 Marshmallow 设备上 它失败 在 Loll
  • 实体框架中的分页

    在实体框架中 使用 LINQ to Entities 数据库分页通常按以下方式完成 int totalRecords EntityContext Context UserSet Count var list EntityContext Co
  • 如何在 Eclipse 中获得完全限定的类名?

    有没有一种快速方法可以在 Eclipse 中单击 Java 类并获取其完全限定名称 或将其复制到剪贴板 2016年6月29日编辑 正如 Jeff 所指出的 您只需要执行以下第二步 1 Double click on the class na
  • jDBI中如何进行内查询?

    我怎样才能在 jDBI 中执行这样的事情 SqlQuery select id from foo where name in
  • 如何使用 Java 在 selenium webdriver 中打开新选项卡或如何使用使用 selenium webdriver 的操作类在 selenium 中按 ctrl +T [重复]

    这个问题在这里已经有答案了 如何使用 Java 在 Selenium Webdriver 中按 CTRL T 或者 如何使用 Java 在 selenium webdriver 中打开新选项卡 简单步骤 1 打开google com 不必触
  • 如何在 spring-data 中强制使用 CrudRepository 进行预加载?

    我有一个实体 其中包含List就是这样lazy默认加载 interface MyEntityRepository extends CrudRepository
  • 从 SQLCE 4 迁移到 SQL Server 2008

    因此 作为早期采用者 我开发了一个基于 SQLCE4 ASP Net MVC3 和实体框架CTP5 http www microsoft com downloads en details aspx FamilyID 35adb688 f8a
  • 获取 Future 对象的进度的能力

    参考 java util concurrent 包和 Future 接口 我注意到 除非我弄错了 只有 SwingWorker 实现类才能启动冗长的任务并能够查询进度 这就引出了以下问题 有没有办法在非 GUI 非 Swing 应用程序 映
  • Java 中序列化的目的是什么?

    我读过很多关于序列化的文章 以及它如何如此美好和伟大 但没有一个论点足够令人信服 我想知道是否有人能真正告诉我通过序列化一个类我们真正可以实现什么 让我们先定义序列化 然后我们才能讨论它为什么如此有用 序列化只是将现有对象转换为字节数组 该
  • EntityFramework 6.0.0.0 读取数据,但不插入

    我创建了一个基于服务的数据库 folderName gt Add New Item gt Data gt Service based Database文件到 WPF 应用程序中 然后我用过Database First方法并创建了Person
  • Unicode(希腊语)字符存储在数据库中,例如“??????”

    数据库中的希腊字符就像问号 我找不到解决办法 我使用 Java Swing 开发了一个应用程序 但是当我在 MySQL 中插入希腊字母时 就像问号一样 我将数据库排序规则更改为 utf8 并将列也更改为 utf8 我的项目编码设置为UTF

随机推荐

  • Pytest 模块未找到错误

    即使我使用 Python 工作这么久 我仍然偶尔会遇到包结构的问题 我正在尝试跑步 pipenv run pytest从下面的目录结构的根 即 上面 src src physics init py pathing py road tests
  • Laravel reCaptcha 集成

    我想在我的 Laravel 项目中实现 reCaptchawithout使用 Laravel 包 我尝试过使用经典的 reCaptcha V2 它可以工作 但我想改为实现不可见的 reCaptcha 所以我做的是这样的
  • Python Numpy One 热销区域

    制作这个 One Hot 编码矩阵的最佳方法是什么 array 1 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 as array 0 0 1 2 1 0 换句话说 如何解码 One Hot 数组 Use np arg
  • Android-显示自定义对话框

    在我的 Android 应用程序中 我使用自定义对话框 当我尝试显示对话框时 它会导致错误 我不知道自己做错了什么 我真的很困惑 这是我的代码 protected Dialog onCreateDialog int id Dialog di
  • python threading.timer 设置程序运行超时的时间限制

    我有一些与在 Python 中设置函数的最大运行时间相关的问题 事实上 我想用pdfminer来转换 pdf文件到 txt 问题是 很多时候 某些文件无法解码并且需要很长时间 所以我想设置threading Timer 将每个文件的转换时间
  • TCL 在字符串中设置特殊字符

    我想在 TCL 中将以下错误消息设置为变量 并与来自网络交换机的错误消息进行比较 绕过特殊字符 使用 插槽 端口 或 端口名称 或 插槽 或 我尝试用这种方式 set x Use slot port or portname or slot
  • 在日历应用程序中对重复事件进行建模的最佳方法是什么? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我正在构建一个需要支持重复事件的组日历应用程序 但我想出的用于处理这些事件的所有解决方案似乎都是黑客 我可以限制一个人可以看到的距离 然后立即生成所有事件 或者 我可以将事件存储为重复事件
  • 如何禁用“调试”在 package.json 中显示

    如何禁止在上面的 package json 中显示概述的 调试 提示scripts部分 设置为 debug javascript codelens npmScripts never 由于它显示为scripts我搜索的 package jso
  • 将项目标记为特定类别

    我想根据项目中的文本将项目标记为特定类别 我有以下代码 Sub ProcessRSS Read RSS items and process the usful ones Dim objList As Object Dim objItem A
  • Coldfusion 9 使用哪个版本的 iText?

    ColdFusion 9 使用哪个版本的 iText 并不明显 有任何想法吗 ColdFusion 9 0 1 附带 iText 2 1 0 由 lowagie com 提供 您可以在此处找到 ColdFusion 脚本来确定版本 http
  • 如何计算VBA中一个字符串出现在另一个字符串中的次数?

    如何计算 Access VBA 中一个字符串出现在另一个字符串中的次数 例如 我如何计算 The Quick Brown Fox Jumps Over the Lazy Dog 中 The 出现了多少次 因为您对子字符串 区分大小写没问题
  • 从 forEach 推送对象后数组保持为空

    需要帮助 我遇到数组保持空的问题从 forEach 推送对象后 我是否错过了什么 这是代码 const allStatus result forEach async element gt const count await BpCandid
  • 使用 Mac App Store 中 Safari 组件的应用程序的导出合规性

    我正在向 Mac App Store 提交一个应用程序 该应用程序使用 Safari 组件来显示网页 我被问到这个问题 您的应用程序是否设计为使用加密技术 或者是否包含或合并加密技术 即使您的应用程序仅使用 iOS 或 OS X 中提供的加
  • Swift - 整数转换为小时/分钟/秒

    我有一个 有点 关于时间转换的基本问题Swift 我有一个整数 我想将其转换为小时 分钟 秒 Example Int 27005会给我 7 Hours 30 Minutes 5 Seconds 我知道如何在 PHP 中执行此操作 但可惜 S
  • 打开抽屉菜单时重建脚手架主体

    我有一个有状态的小部件 它构建了一个脚手架 我在脚手架中使用一个抽屉作为侧面菜单 此外 Scaffold 的主体是一个 FutureBuilder 它从 firestore 数据库获取数据并将信息显示在主体的卡片中 打开抽屉时似乎出现问题
  • SQL 中“AS”是什么意思?

    下面是概要SELECT来自 PostgreSQL文档 在我看来 有时我们会写
  • DateTime 和 ASP.NET MVC 3 模型绑定的全球化问题

    我的应用程序在 ro RO 区域性设置下运行 在 web config 全球化部分中配置 如果我发出像这样的 POST 请求 POST myapp index date 03 12 2010 value something 模型绑定将此映射
  • IE8 在 JavaScript 弹出窗口上奇怪地崩溃

    创建弹出窗口后我遇到一个奇怪的问题onclick 弹出窗口打开 但在 IE8 上立即挂起 在包括 IE6 在内的所有其他浏览器上工作正常 但在添加alert如 JavaScript 代码中所示 弹出窗口工作正常 我在用 https 并不是
  • 如何在 TypeScript 中定义 Singleton

    在 TypeScript 中为类实现单例模式的最佳和最方便的方法是什么 有或没有延迟初始化 从 TS 2 0 开始 我们有能力定义构造函数的可见性修饰符 所以现在我们可以在 TypeScript 中执行单例 就像我们习惯在其他语言中一样 给
  • 非空约束上的 Hibernate JoinColumn 错误

    这是我的课程列表 MappedSuperclass public abstract class JpaModel Id Column name ID columnDefinition serial GeneratedValue strate