我们正在开发一个分布式的、顺序的 ID 生成器,它可以创建一个 96 位的数字 ID。我们在应用程序中为这个值工作的数据类型是decimal
. 在数据库方面,列的数据类型将是decimal(28,0)
.
问题是当我通过代码映射并配置Id时,我无法指定精度和比例。理想情况下,我想要这样的东西:
map.Id(c => c.Id, id =>
{
id.Generator(RustFlakeGeneratorDef.Instance);
id.Precision(28); // nope
id.Scale(0); // nope. *$%!
});
如果我尝试忽略它,NHibernate 会decimal(28,5)
在创建参数和发出命令时回退到使用,这将不起作用。
我知道有一张票,如果我想在适当的时候做出贡献。与此同时,我需要看看这是否会成功,所以我想知道是否有任何解决方法。自定义类型,破解反序列化的 HBM,诸如此类?
我确实尝试创建自己的派生自 的类型DecimalType
,并且我覆盖了返回 的属性,SqlType
我在其中指定了自己的精度和比例,但这似乎没有任何作用。