次のような状況があります。 JavaのHibernateを使用してPOJOクラスをデータベースに書き出します。 クラスは次のように注釈されています。データベースへの書き込み時に私たちは、次のエラーを取得するHibernate POJOを使用したSQL外部キーエラー
@Entity
@Table(name = "dbo.SaveEvents")
(表:dbo.CodeDocuments
)我々は追加することによって、外部キー制約を満たすためにしようとした
WARN: SQL Error: 547, SQLState: 23000 Feb 06, 2017 2:06:42 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions ERROR: The INSERT statement conflicted with the FOREIGN KEY constraint "FK_SaveEvents_CodeDocuments". The conflict occurred in database "OSBLEPlus_eclipse", table "dbo.CodeDocuments", column 'Id'. org.hibernate.exception.ConstraintViolationException: could not execute statement at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:112)
: @SecondaryTable(name = "dbo.CodeDocuments")
しかし、これは私たちの問題を解決するものではありません。また、SecondaryTable
注釈を正しく使用する方法について多くの情報が見つかりませんでした。マッピングFK < - 次のように> PKは次のとおりです。
CodeDocuments.sql:
CREATE TABLE [dbo].[CodeDocuments] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[FileName] VARCHAR (MAX) NOT NULL,
[Content] VARCHAR (MAX) NOT NULL,
CONSTRAINT [PK_CodeDocuments_Id] PRIMARY KEY CLUSTERED ([Id] ASC)
);
SaveEvents.sql:
CREATE TABLE [dbo].[SaveEvents] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[EventLogId] INT NOT NULL,
[EventDate] DATETIME NOT NULL,
[SolutionName] VARCHAR (MAX) NOT NULL,
[DocumentId] INT NOT NULL,
CONSTRAINT [PK_SaveEvents] PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_SaveEvents_EventLogs] FOREIGN KEY ([EventLogId]) REFERENCES [dbo].[EventLogs] ([Id]),
CONSTRAINT [FK_SaveEvents_CodeDocuments] FOREIGN KEY ([DocumentId]) REFERENCES [dbo].[CodeDocuments] ([Id])
);
どのように外部キーエラーを修正別名HibernateのPOJOを使用して、一度に2つのテーブルに挿入するに行きますか?
FK <-> PK関係のいくつかのタイプを持つ、一緒に挿入しようとしている2つのエンティティの完全なマッピングを投稿する必要があります。 – Naros
2つのエンティティ(SQLコード)の完全なマッピングを投稿しました – OSBLE