【发布时间】:2017-02-25 18:45:17
【问题描述】:
我们有以下情况: 我们使用 Java 的 Hibernate 将 POJO 类写入数据库。 类注释如下:
@Entity
@Table(name = "dbo.SaveEvents")
写入数据库时出现以下错误(表:dbo.CodeDocuments)
我们尝试通过添加以下内容来满足外键约束:
@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 关系。
-
贴出两个实体的完整映射(sql代码)
标签: java sql sql-server hibernate