我的应用程序使用
Id(x => x.Id).GeneratedBy.Increment();
用于生成主键。我已经阅读了一些关于Increment
的文章,我现在非常担心:所有这些文章都说Increment
在 cluster 中使用时很危险。但是,没有集群,它是具有单个SessionFactory
实例的常见Web应用程序。但是,并发线程共享相同的SessionFactory
。
SessionFactory
还是不安全的Session
?
答案 0 :(得分:1)
查看https://blog.jessfraz.com/post/ips-for-all-the-things/,Generate()
类的IncrementGenerator
方法使用MethodImpl
属性和MethodImplOptions.Synchronized
选项进行修饰。这个source访问该方法是同步的,因此是线程安全的。