問題
- サイト テンプレートのページに変更が加えられた場合、その変更は実際のサイトの派生ページには適用されず、代わりに例外がスローされます。
ERROR [liferay/background_task-8][JDBCExceptionReporter:234] Duplicate entry '36912-36232-/test-1-0' for key 'IX_C753170C'
ERROR [liferay/background_task-8][LayoutSetPrototypeImportBackgroundTaskExcecutor:132] Merge fail count increased to 1 for layout set prototype 36865
com.liferay.exportimport.kernel.lar.PortletDataException: Could not execute JDBC batch update
...
Caused by: org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update - これは、わかりやすい URL の翻訳がデフォルトの翻訳と同じで、フィールドに再度入力された場合にのみ発生します。
Environment
- DXP 7.3
解決策
これは、次の技術的状況による Liferay の現在の制限です。
技術的な詳細
インデックス IX_C753170C
テーブル FriendlyURLEntryLocalization
に属します。 7.3 では、ページのフレンドリー URL 履歴が導入されました。この新しい機能は、使用されたフレンドリー URL の履歴がテーブル FriendlyURLEntry
および FriendlyURLEntryLocalization
に保存されるため、この従来の動作に干渉します。これは、重複するフレンドリー URL に対してより厳しい制限を課します。ページの翻訳で。
LPS-35221 で定義されている動作は、アップグレード手順を作成して、デフォルト言語と同じ翻訳済みのわかりやすい URL を少なくとも重複排除することにより、可能な限り維持する必要があります。 ただし、完全な解決策は DB スキーマを再設計することを意味し、Liferay の新しいバージョンにのみバックポートできます。 この種の変更は開発です。そのため、製品チームは次のチケットを作成しました: LPS-142165.
回避策
変更は反映され、エラーは発生しません。
- フレンドリ URL フィールドが空のままであるか、 UNTRANSLATED
- わかりやすい URL がデフォルトの翻訳とは異なる
今後の変更
この動作は、今後のフィックスパックで変更される予定です。 この変更により、元の翻訳と同じ翻訳を追加できなくなります。 詳細については、チケット LPS-141974を参照してください。