解决方法:
1.删除触发器
2.hibernate中的主键方式采用其他的。比如uuid
我遇到过了, 这个问题非常苦逼啊.我对比了一下 SQL Server 与 Oracle
如果是 SQL Server 的 identity 自增列
插入数据 SaveChanges 以后, 那个自增列的字段, 会自动更新的。
但是如果是 Oracle 的 触发器 + Sequence 的自增
插入数据 SaveChanges 以后, 那个自增列的字段,还是 0
也就是当插入1行数据的时候。SaveChanges 了。
SQL Server 里面, 那个 类的 id 会更新
Oralce 里面, 那个 类的 id 还是0
导致你再插入1行数据的时候。
SQL Server 啥问题没有
而 Oracle 就会抱 主键冲突 (其实这里都还没有插入数据库, 是 Entity Framework 检测到 主键冲突了, 于是不让你插入了)
我当时只好找个表来存储序列号,处理起来,也是很麻烦。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)