NHibernate插入错误

NHibernate插入错误,nhibernate,hilo,Nhibernate,Hilo,我刚刚使用与SQLite相同的映射和源数据设置了一个Sql Server db,并且在尝试保存一批测试数据时出现了以下错误 我怀疑SQLite没有抓住这是一个hilo问题,但我不能完全集中精力。我正在使用SchemaExport工具生成数据库,它创建了一个hibernate_unique_key表,最初为“1”。错误后为“2” 有什么建议吗 干杯, 贝里尔 您的hilo表似乎没有问题。根据我使用hilo密钥生成的经验,这是正确的。根据异常,您违反了ActivitySubjects的唯一键约束。检

我刚刚使用与SQLite相同的映射和源数据设置了一个Sql Server db,并且在尝试保存一批测试数据时出现了以下错误

我怀疑SQLite没有抓住这是一个hilo问题,但我不能完全集中精力。我正在使用SchemaExport工具生成数据库,它创建了一个hibernate_unique_key表,最初为“1”。错误后为“2”

有什么建议吗

干杯,
贝里尔


您的hilo表似乎没有问题。根据我使用hilo密钥生成的经验,这是正确的。根据异常,您违反了ActivitySubjects的唯一键约束。检查您的唯一键约束。

问题似乎不在hilo表中。根据我使用hilo密钥生成的经验,这是正确的。根据异常,您违反了ActivitySubjects的唯一键约束。检查您的唯一键约束。

问题似乎不在hilo表中。根据我使用hilo密钥生成的经验,这是正确的。根据异常,您违反了ActivitySubjects的唯一键约束。你能提供你的类和映射文件吗?@James。是的,你说得对。我有两个列,理想情况下,我希望每个类在表的层次结构方案中是唯一的,但这不能是唯一的,因为它们属于不同的子类型。我早该知道的!如果你把你的评论作为一个答案,我可以接受并结束这件事。干杯,小伙子,我能帮忙。作为答案添加。问题似乎不在hilo表中。根据我使用hilo密钥生成的经验,这是正确的。根据异常,您违反了ActivitySubjects的唯一键约束。你能提供你的类和映射文件吗?@James。是的,你说得对。我有两个列,理想情况下,我希望每个类在表的层次结构方案中是唯一的,但这不能是唯一的,因为它们属于不同的子类型。我早该知道的!如果你把你的评论作为一个答案,我可以接受并结束这件事。干杯,小伙子,我能帮忙。作为答案添加。
insert into hibernate_unique_key values ( 1 )

insert into hibernate_unique_key values ( 1 )

NHibernate: SELECT this_.ActivitySubjectId as Activity1_3_0_, this_.Description as Descript3_3_0_, 
this_.BusinessId as BusinessId3_0_, this_.ProjectCode as ProjectC6_3_0_ FROM ActivitySubjects this_ WHERE this_.ActivitySubjectType='PROJECT'

NHibernate: select next_hi from hibernate_unique_key with (updlock, rowlock)

NHibernate: update hibernate_unique_key set next_hi = @p0 where next_hi = @p1;@p0 = 2 [Type: Int32 (0)], @p1 = 1 [Type: Int32 (0)]

NHibernate: INSERT INTO ActivitySubjects (Description, BusinessId, ProjectCode, ActivitySubjectType, ActivitySubjectId) 
VALUES (@p0, @p1, @p2, 'PROJECT', @p3);@p0 = 'Refinish Casino Chairs' [Type: String (75)], @p1 = '006-00-023' [
Type: String (25)], @p2 = '006-00-023' [Type: String (4000)], @p3 = 32768 [Type: Int32 (0)]

NHibernate: INSERT INTO ActivitySubjects (Description, BusinessId, ProjectCode, ActivitySubjectType, 
ActivitySubjectId) VALUES (@p0, @p1, @p2, 'PROJECT', @p3);@p0 = 'Villa Garden Wall Enhancement' 
[Type: String (75)], @p1 = '006-00-024' [Type: String (25)], @p2 = '006-00-024' [Type: String (4000)], @p3 = 32769 [Type: Int32 (0)]

Test 'M:Smack.ConstructionAdmin.Data.Tests.DbConfiguration.TestData.SqlServerDataGenerator.CreateTestDataFile' failed: could not insert: 
[Smack.ConstructionAdmin.Domain.Activities.Subjects.Projects.Project#32769][SQL: INSERT INTO ActivitySubjects 
(Description, BusinessId, ProjectCode, ActivitySubjectType, ActivitySubjectId) VALUES (?, ?, ?, 'PROJECT', ?)]

NHibernate.Exceptions.GenericADOException: could not insert: 
[Smack.ConstructionAdmin.Domain.Activities.Subjects.Projects.Project#32769]
[SQL: INSERT INTO ActivitySubjects (Description, BusinessId, ProjectCode, ActivitySubjectType, 
    ActivitySubjectId) VALUES (?, ?, ?, 'PROJECT', ?)] 
    ---> System.Data.SqlClient.SqlException: Violation of UNIQUE KEY constraint 
        'UQ__ActivitySubjects__49555023'. Cannot insert duplicate key in object 'dbo.ActivitySubjects'.
The statement has been terminated.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)