- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已将代码从 Hibernate 2.x 升级到 5.3.7。最终在连接表周围出现错误。
想象一下涉及到两个表。 TableA、TableB 和 JoinTable,JoinTable 是 tablea 和 tableb 之间有链接的表。
问题出在 JoinTable 上,其中存在约束问题。
表 A 包含字段:ARCHDEFTableB 有字段:PART_REV_IDJoinTable 具有:ARCHDEF 和 PART_REV_ID。
在tableB中添加新条目时,针对JoinTable存在以下约束错误。
Bean Pojo 代码:
/// TABLEA
@Table( name = "DART_ARCHDEF_MASTER" )
public class Archdef implements Serializable {
/// JOINTABLE
@ManyToMany( targetEntity = PartRevision.class )
//@JoinTable( name = "DART_ARCHDEF_PART", uniqueConstraints = { @UniqueConstraint(columnNames = "PART_REV_ID") }, joinColumns = { @JoinColumn( name = "ARCHDEF_NAME" ) }, inverseJoinColumns = { @JoinColumn( name = "PART_REV_ID" ) } )
@JoinTable( name = "DART_ARCHDEF_PART", joinColumns = { @JoinColumn( name = "ARCHDEF_NAME" ) }, inverseJoinColumns = { @JoinColumn( name = "PART_REV_ID" ) } )
private Set< PartRevision > parts;
}
/// TABLE B
@Entity
@Table( name = "DART_PART_REVISION" )
public class PartRevision implements Serializable {
@ManyToOne
@JoinTable( name = "DART_ARCHDEF_PART", joinColumns = { @JoinColumn( name = "PART_REV_ID" ) }, inverseJoinColumns = { @JoinColumn( name = "ARCHDEF_NAME" ) } )
private Archdef archdef;
@Id
@GeneratedValue( strategy = GenerationType.IDENTITY )
@Column( name = "PART_REV_ID" )
private int id;
}
下面的 tx.commit 发生错误。
private void createDatabaseEntries() throws IOException, SvnException, InterruptedException {
final String logMessage = message.getMessage();
final String[] messageArray = logMessage.split( System.getProperty( "line.separator" ) );
final String archdefName = messageArray[0];
final List< SvnFile > partsChanged = getChangedParts();
final Map< String, String > partsChangedMap = getChangedPartsMap();
final String prQuery = "INSERT INTO {0}.DART_PART_REV_LEVEL(PART_REV_ID, ADDED_TS, LEVEL_ID) VALUES (:partRevId, CURRENT_TIMESTAMP, :levelId)";
logger.info("SMARTSMIG-J8-1.4: POST COMMIT Running query against DART_PART_REV_LEVEL: "+prQuery);
Transaction tx = null;
Session session = null;
Archdef archdef = null;
Query archdefSelectQuery = null;
Query partSelectQuery = null;
Query levelSelectQuery = null;
Query partRevisionQuery = null;
Level level = null;
PartRevision partRevision = null;
Part part = null;
String partFileLoc = null;
Set< PartRevision > archdefPartsSet = null;
if ( !"Initial check-in.".equals( archdefName ) && !"Initial tag.".equals( archdefName ) ) {
try {
session = HibernateUtil.getSessionFactory().openSession();
tx = session.beginTransaction();
levelSelectQuery = session.getNamedQuery( SmartsConstants.GET_LEVEL_BY_NAME );
partSelectQuery = session.getNamedQuery( CommandConstants.GET_PARTS_HQL );
archdefSelectQuery = session.getNamedQuery( SmartsConstants.GET_ARCHDEF_BY_NAME );
archdefSelectQuery.setParameter( SmartsConstants.ARCHDEF_NAME, archdefName );
archdef = ( Archdef ) archdefSelectQuery.uniqueResult();
archdefPartsSet = archdef.getParts();
levelSelectQuery.setParameter( SmartsConstants.LEVEL_NAME, SmartsConstants.DEV );
level = ( Level ) levelSelectQuery.uniqueResult();
logger.info("SMARTSMIG-J8-1.4 JHE-JY -------------- SvnFile file : partsChanged ");
if (archdefPartsSet != null) {
for(final PartRevision partprt : archdefPartsSet) {
logger.info("SMARTSMIG-J8-1.4 - JHE-JY: Found Commit : xxxxx "+partprt.getId() + " ;; "+ partprt);
}
}
for ( SvnFile file : partsChanged ) {
if ( !file.getFileLoc().matches( fileFilter ) ) {
partFileLoc = file.getFileLoc();
partSelectQuery.setParameter( "partFileLoc", partFileLoc );
part = ( Part ) partSelectQuery.uniqueResult();
partRevision = new PartRevision();
partRevision.setPart( part );
partRevision.setUserId( author );
partRevision.setCommitted( Boolean.TRUE );
partRevision.setRevisionNumber( Integer.parseInt( svnArgument ) );
partRevision.setStatus( partsChangedMap.get( partFileLoc ).equals( "D" ) ? "D" : "A" );
partRevision.setArchdef(archdef);
logger.debug( partRevision );
session.save( partRevision );
if (!archdefPartsSet.contains(partRevision)) {
logger.info("SMARTSMIG-J8-1.4 - JHE-JY: Adding : archdefPartsSet.add( partRevision ) - JHE-JY");
logger.info("SMARTSMIG-J8-1.4 - JHE-JY: Adding : archdefPartsSet.add( partRevision ) - JHE-JY xxxx "
+partRevision.getRevisionNumber() + " // " + partRevision.getArchdef() + " -- " + partRevision.getPart() + " :: "+partRevision.getId() );
archdefPartsSet.add( partRevision );
} else {
logger.warn("SMARTSMIG-J8-1.4 - JHE-JY: Not Adding : archdefPartsSet.add( partRevision ) - JHE-JY <duplicate> " + partRevision.getId());
}
if ( partsChangedMap.get( partFileLoc ).equals( "D" ) && partFileLoc.endsWith( "/" ) ) {
for ( PartRevision archdefPart : archdefPartsSet ) {
if ( archdefPart.getPart().getPartFileLoc().startsWith( partFileLoc ) ) {
archdefPart.setStatus( "D" );
}
}
session.saveOrUpdate( archdef );
}
partRevisionQuery = session.createNativeQuery( prQuery.replaceAll( SmartsConstants.PARAM_0, System.getProperty( "db2.qualifier" ) ) );
partRevisionQuery.setParameter( "partRevId", partRevision.getId() );
partRevisionQuery.setParameter( "levelId", level.getId() );
partRevisionQuery.executeUpdate();
}
}
if (archdefPartsSet != null) {
logger.info("SMARTSMIG-J8-1.4 - JHE-JY: POST COMMIT Entering transaction commit and session save with archdefPartsSet.size() " + archdefPartsSet.size());
// Attempting to check archderffile
for(final PartRevision partprt : archdefPartsSet) {
logger.info("SMARTSMIG-J8-1.4 - JHE-JY: Found Commit : "+partprt);
}
}
if ( !archdef.getLevel().equals( level ) ) {
archdef.setLevel( level );
session.saveOrUpdate( archdef );
}
tx.commit();
} catch ( HibernateException h_ex ) {
SmartsUtil.logException( h_ex );
if ( tx != null ) {
tx.rollback();
}
} finally {
if ( session.isOpen() ) {
session.close();
}
}
}
}
下面列出了错误。
07 Nov 2019 11:48:25 ERROR [Thread-14] com.pfs.smarts.util.SmartsUtil.logException(SmartsUtil.java:212) : javax.persistence.PersistenceException: org.hiber nate.exception.ConstraintViolationException: could not execute statement
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:188)
at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1460)
at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:511)
at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:3283)
at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:2479)
at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:473)
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback(JdbcResourceLocalT ransactionCoordinatorImpl.java:178)
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$300(JdbcResourceLocalTransactionCoor dinatorImpl.java:39)
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcRes ourceLocalTransactionCoordinatorImpl.java:271)
at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:98)
at com.pfs.smarts.subversion.hooks.command.PostCommitCheckCommand.createDatabaseEntries(PostCommitCheckCommand.java:306)
at com.pfs.smarts.subversion.hooks.command.PostCommitCheckCommand.execute(PostCommitCheckCommand.java:59)
at com.pfs.smarts.subversion.hooks.command.AbstractCommand.executeCommand(AbstractCommand.java:87)
at com.pfs.smarts.server.svn.workers.ProcessRequestThread.run(ProcessRequestThread.java:87)
Caused by: org.hibernate.exception.ConstraintViolationException: could not execute statement
at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:59)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:178)
at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:45)
at org.hibernate.persister.collection.AbstractCollectionPersister.insertRows(AbstractCollectionPersister.java:1575)
at org.hibernate.action.internal.CollectionUpdateAction.execute(CollectionUpdateAction.java:85)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:604)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:478)
at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:356)
at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39)
at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1454)
... 12 more
Caused by: com.ibm.db2.jcc.am.SqlIntegrityConstraintViolationException: DB2 SQL Error: SQLCODE=-803, SQLSTATE=23505, SQLERRMC=DARTARP1;00000083CA, DRIVER=4 .26.14
at com.ibm.db2.jcc.am.b7.a(b7.java:806)
at com.ibm.db2.jcc.am.b7.a(b7.java:66)
at com.ibm.db2.jcc.am.b7.a(b7.java:140)
at com.ibm.db2.jcc.am.k4.b(k4.java:2471)
at com.ibm.db2.jcc.am.k4.c(k4.java:2452)
at com.ibm.db2.jcc.t4.ab.n(ab.java:914)
at com.ibm.db2.jcc.t4.ab.a(ab.java:120)
at com.ibm.db2.jcc.t4.p.a(p.java:50)
at com.ibm.db2.jcc.t4.aw.b(aw.java:220)
at com.ibm.db2.jcc.am.k5.bm(k5.java:3599)
at com.ibm.db2.jcc.am.k5.a(k5.java:4644)
at com.ibm.db2.jcc.am.k5.b(k5.java:4182)
at com.ibm.db2.jcc.am.k5.be(k5.java:827)
at com.ibm.db2.jcc.am.k5.executeUpdate(k5.java:801)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:384)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:175)
... 20 more
出错时的 SQL:
insert
into IDSDPFS.DART_ARCHDEF_PART ( ARCHDEF_NAME , PART_REV_ID )
values ( ? , ? )
HOST VARIABLE DATA USED WITH THIS SQL REQUEST
PARAMETER MARKER 1 = 'COBJY10'
PARAMETER MARKER 2 = 260403
最佳答案
您的错误消息显示:
DB2 SQL Error: SQLCODE=-803, SQLSTATE=23505
-803 代表 Db2 错误 SQL0803N,解释如下:
SQL0803N INSERT 语句、UPDATE 语句或由 DELETE 语句引起的外键更新中的一个或多个值无效,因为由索引 ID 标识的主键、唯一约束或唯一索引约束表 table-因索引键具有重复值而产生的名称。
https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.5.0/com.ibm.db2.luw.messages.sql.doc/com.ibm.db2.luw.messages.sql.doc-gentopic4.html#sql0803n
这是关于上面页面中的 INSERT 语句的用户响应部分:
<小时/>检查由index-id标识的索引的定义。
:
对于 INSERT 语句,检查对象表内容以确定指定值列表中的哪些值违反了唯一性约束。或者,如果 INSERT 语句包含子查询,则该子查询寻址的对象表内容必须与对象表内容进行匹配,以确定问题的原因。请注意,如果使用安全策略保护表,您的 LBAC 凭据可能不允许您查看导致错误的行。
如果索引位于 XML 列上并且语句是 INSERT 或 UPDATE,请考虑 XML 文档是否会导致单个 XML 文档中出现重复值。
因此您可能需要检查表和索引的定义。
希望这有帮助。
关于java - 使用 Join Table 和 Hibernate JPA 以及约束违规问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58752910/
我在网上搜索但没有找到任何合适的文章解释如何使用 javascript 使用 WCF 服务,尤其是 WebScriptEndpoint。 任何人都可以对此给出任何指导吗? 谢谢 最佳答案 这是一篇关于
我正在编写一个将运行 Linux 命令的 C 程序,例如: cat/etc/passwd | grep 列表 |剪切-c 1-5 我没有任何结果 *这里 parent 等待第一个 child (chi
所以我正在尝试处理文件上传,然后将该文件作为二进制文件存储到数据库中。在我存储它之后,我尝试在给定的 URL 上提供文件。我似乎找不到适合这里的方法。我需要使用数据库,因为我使用 Google 应用引
我正在尝试制作一个宏,将下面的公式添加到单元格中,然后将其拖到整个列中并在 H 列中复制相同的公式 我想在 F 和 H 列中输入公式的数据 Range("F1").formula = "=IF(ISE
问题类似于this one ,但我想使用 OperatorPrecedenceParser 解析带有函数应用程序的表达式在 FParsec . 这是我的 AST: type Expression =
我想通过使用 sequelize 和 node.js 将这个查询更改为代码取决于在哪里 select COUNT(gender) as genderCount from customers where
我正在使用GNU bash,版本5.0.3(1)-发行版(x86_64-pc-linux-gnu),我想知道为什么简单的赋值语句会出现语法错误: #/bin/bash var1=/tmp
这里,为什么我的代码在 IE 中不起作用。我的代码适用于所有浏览器。没有问题。但是当我在 IE 上运行我的项目时,它发现错误。 而且我的 jquery 类和 insertadjacentHTMl 也不
我正在尝试更改标签的innerHTML。我无权访问该表单,因此无法编辑 HTML。标签具有的唯一标识符是“for”属性。 这是输入和标签的结构:
我有一个页面,我可以在其中返回用户帖子,可以使用一些 jquery 代码对这些帖子进行即时评论,在发布新评论后,我在帖子下插入新评论以及删除 按钮。问题是 Delete 按钮在新插入的元素上不起作用,
我有一个大约有 20 列的“管道分隔”文件。我只想使用 sha1sum 散列第一列,它是一个数字,如帐号,并按原样返回其余列。 使用 awk 或 sed 执行此操作的最佳方法是什么? Accounti
我需要将以下内容插入到我的表中...我的用户表有五列 id、用户名、密码、名称、条目。 (我还没有提交任何东西到条目中,我稍后会使用 php 来做)但由于某种原因我不断收到这个错误:#1054 - U
所以我试图有一个输入字段,我可以在其中输入任何字符,但然后将输入的值小写,删除任何非字母数字字符,留下“。”而不是空格。 例如,如果我输入: 地球的 70% 是水,-!*#$^^ & 30% 土地 输
我正在尝试做一些我认为非常简单的事情,但出于某种原因我没有得到想要的结果?我是 javascript 的新手,但对 java 有经验,所以我相信我没有使用某种正确的规则。 这是一个获取输入值、检查选择
我想使用 angularjs 从 mysql 数据库加载数据。 这就是应用程序的工作原理;用户登录,他们的用户名存储在 cookie 中。该用户名显示在主页上 我想获取这个值并通过 angularjs
我正在使用 autoLayout,我想在 UITableViewCell 上放置一个 UIlabel,它应该始终位于单元格的右侧和右侧的中心。 这就是我想要实现的目标 所以在这里你可以看到我正在谈论的
我需要与 MySql 等效的 elasticsearch 查询。我的 sql 查询: SELECT DISTINCT t.product_id AS id FROM tbl_sup_price t
我正在实现代码以使用 JSON。 func setup() { if let flickrURL = NSURL(string: "https://api.flickr.com/
我尝试使用for循环声明变量,然后测试cols和rols是否相同。如果是,它将运行递归函数。但是,我在 javascript 中执行 do 时遇到问题。有人可以帮忙吗? 现在,在比较 col.1 和
我举了一个我正在处理的问题的简短示例。 HTML代码: 1 2 3 CSS 代码: .BB a:hover{ color: #000; } .BB > li:after {
我是一名优秀的程序员,十分优秀!