当前位置: 首页 > 知识库问答 >
问题:

Hibernate@version与@audit冲突(可能)

邹嘉荣
2023-03-14

添加到我的实体中

@version@temporal(temporaltype.timestamp)
@column(name=“version”)
专用日期版本;

private static final long serialVersionUID = 1636824190907788517L;
@Id
@NotNull
@Column(name = "id")
private UUID id;
@Version
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "version")
private Date version;
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
@ManyToOne(cascade = CascadeType.MERGE)
@JoinColumn(name = "user", nullable = false)
private User user;
@Column(name = "purpose", length = 100)
protected String comment;
@OneToOne(cascade = CascadeType.REMOVE)
@JoinColumn(name = "eq_id", nullable = false)
protected BasicEquipment equip;
@OneToOne(cascade = CascadeType.REMOVE)
@JoinColumn(name = "eq_id2", nullable = false)
protected BasicEquipment equip2;

错误:

原因:org.hibernate.exception.ConstraintViolationException:无法执行语句(...)

org.hibernate.exception.internal.standardsqlexceptionconverter.convert(standaorg.hibernate.engine.jdbc.sporg.hibernate.engine.jdbc.batch.internal.nonbatchingbatch.addtoBatch(NonBatch org.hibernate.resource.transaction.backend.jdbc.internal.jdbc.resourcelocaltra由:org.postgresql.util.psqlexception:error:重复的键值违反

共有1个答案

彭朝
2023-03-14

你试过这个解决方案吗?

http://www.byteslounge.com/tutorials/jpa-entity-versioning-version-and-optimatic-locking

在某些情况下,当版本化更新与批处理更新一起使用时,可能会出现问题。例如,在Oracle11g和Hibernate的给定版本中,我曾经遇到过这种情况。Oracle JDBC驱动程序无法在执行JDBC批处理语句时提取正确的更新行数计数。

这当然是Oracle11g的一个特定场景,很容易解决,正如我们刚才所看到的。

 类似资料:
  • 我使用pybind11让python调用现有的C模块(库)。但是,在C库中,调用::GetModuleFileName(Visual Studio)来确定加载的模块在C中运行时的物理路径。但是当我通过pybind11从python(Jupyter Notebook)调用库时,python.exe的物理路径会返回。如何配置或更改以确保获得C库的物理路径? C代码是这样的:Lib. h 我ib.cpp

  • 我使用的是Horizontal ViewPager2,它里面有4个片段。每个片段都有一个回收器视图上的SwipeReFresLayout。我面临的问题是,当回收器视图位于顶部时,然后onClick on任何项目列表都不起作用。如果我向下滚动一点回收器视图,那么onClick就可以正常工作。当回收器视图位于顶部时,如果SwipeReFresLayout处于刷新状态,那么onClick就可以正常工作。

  • 有了这个Jaxb Xml定义,我尝试通过添加来移除映射元素包装器,但在解压缩过程中会导致异常 EventAdapter是 我的输出是 我尝试通过添加来删除标记 产量不错 但撤退失败了 调试Jaxb使我熟悉了这一行

  • 我想使用Stetho调试了我的Andorid应用程序,但Stetho与Fastjson有冲突。

  • Postgres 10和11的插入说明: 关于冲突[冲突目标]冲突行动 我有一张桌子: 而我想做的 但是我得到一个错误: ON CONFLICT DO UPDATE需要推理规范或约束名称提示:例如,ON CONFLICT(column_name) 为什么我必须提供一个确定的目标?如何提供主键或其他列集?

  • 我在尝试通过hibernate spatial postgresql插件使用Grails 2.4.3和PostGIS数据库建立项目时遇到了很多麻烦。这是一个示例项目,除了默认插件外,没有安装其他插件。我首先启用了Postgres,并尝试将域保存到数据库中:一切正常。但一旦我启用hibernate spatial,它就不再工作了。 我和这个人有完全相同的问题。 我试着像他一样排除“hibernate