問題
-
以前のバージョンを含む構造をエクスポートすると、インポート時に一意の制約違反が発生する可能性があります。 次のスタック トレースがログに表示されます。
2022-12-19 21:24:49.032 ERROR [liferay/background_task-3][BatchingBatch:134] HHH000315: Exception executing batch [java.sql.BatchUpdateException: Duplicate entry '41614-44192-44190-Text37517990-0' for key 'dedatadefinitionfieldlink.IX_998C30ED'], SQL: insert into DEDataDefinitionFieldLink (mvccVersion, ctCollectionId, uuid_, groupId, companyId, createDate, modifiedDate, classNameId, classPK, ddmStructureId, fieldName, lastPublishDate, deDataDefinitionFieldLinkId) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
2022-12-19 21:24:49.032 ERROR [liferay/background_task-3][SqlExceptionHelper:142] Duplicate entry '41614-44192-44190-Text37517990-0' for key 'dedatadefinitionfieldlink.IX_998C30ED'
2022-12-19 21:24:49.047 ERROR [liferay/background_task-3][LoggerExportImportLifecycleListener:399] Staged model {class: com.liferay.data.engine.model.DEDataDefinitionFieldLink, uuid: be48ce84-a3fd-0e6f-51bf-23097effa163} import failed
javax.persistence.PersistenceException: org.hibernate.exception.ConstraintViolationException: could not execute batch
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154) ~[hibernate-core.jar:5.6.7.Final]
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181) ~[hibernate-core.jar:5.6.7.Final]
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:188) ~[hibernate-core.jar:5.6.7.Final]
at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1411) ~[hibernate-core.jar:5.6.7.Final]
at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1394) ~[hibernate-core.jar:5.6.7.Final]
at com.liferay.portal.spring.hibernate.PortletTransactionManager$TransactionStatusWrapper.reset(PortletTransactionManager.java:283) ~[portal-impl.jar:?]
at com.liferay.portal.spring.hibernate.PortletTransactionManager.commit(PortletTransactionManager.java:68) ~[portal-impl.jar:?]
at com.liferay.portal.spring.transaction.DefaultTransactionExecutor.commit(DefaultTransactionExecutor.java:41) ~[portal-impl.jar:?]
at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:77) ~[portal-impl.jar:?]
at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:57) ~[portal-impl.jar:?]
at com.liferay.portal.service.ServiceContextAdvice.invoke(ServiceContextAdvice.java:60) ~[portal-impl.jar:?]
at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:57) ~[portal-impl.jar:?]
at com.liferay.portal.spring.aop.AopInvocationHandler.invoke(AopInvocationHandler.java:49) ~[portal-impl.jar:?]
at com.sun.proxy.$Proxy959.addDEDataDefinitionFieldLink(Unknown Source) ~[?:?]
at com.liferay.data.engine.internal.exportimport.staged.model.repository.DEDataDefinitionFieldLinkStagedModelRepository.addStagedModel(DEDataDefinitionFieldLinkStagedModelRepository.java:57) ~[?:?]
at com.liferay.data.engine.internal.exportimport.staged.model.repository.DEDataDefinitionFieldLinkStagedModelRepository.addStagedModel(DEDataDefinitionFieldLinkStagedModelRepository.java:36) ~[?:?]
at com.liferay.data.engine.internal.exportimport.data.handler.DEDataDefinitionFieldLinkStagedModelDataHandler.doImportStagedModel(DEDataDefinitionFieldLinkStagedModelDataHandler.java:208) ~[?:?]
at com.liferay.data.engine.internal.exportimport.data.handler.DEDataDefinitionFieldLinkStagedModelDataHandler.doImportStagedModel(DEDataDefinitionFieldLinkStagedModelDataHandler.java:43) ~[?:?]
(...)
Caused by: org.hibernate.exception.ConstraintViolationException: could not execute batch
at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:109) ~[hibernate-core.jar:5.6.7.Final]
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:37) ~[hibernate-core.jar:5.6.7.Final]
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113) ~[hibernate-core.jar:5.6.7.Final]
(...)
Caused by: java.sql.BatchUpdateException: Duplicate entry '41614-44192-44190-Text37517990-0' for key 'dedatadefinitionfieldlink.IX_998C30ED'
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_341]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_341]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_341]
(...)
Caused by: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '41614-44192-44190-Text37517990-0' for key 'dedatadefinitionfieldlink.IX_998C30ED'
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:117) ~[mysql.jar:8.0.29]
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql.jar:8.0.29]
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916) ~[mysql.jar:8.0.29]
(...)
Environment
- Liferay DXP 7.4
解決策
- DXP 7.4 Update 60 をインストールしてください。
- または、 LPS-171439 のホットフィックスをリクエストしてください。
- 修正を適用した後、LAR ファイルを再エクスポートする必要があります。