FLuent Nhibernate 和 PostgreSQL 中的自动增量
我是 Fluent Nhibernate 的新手。
我有一个 PostgreSQL 数据库,我想要的是一个自动递增的生成 ID。 我还没有在 PostgreSQL 中看到自动增量功能,并且我知道要在 PostgreSQL 中使用自动增量,我必须创建一个序列。
除了序列还有其他方法吗?
如果创建序列
是唯一的方法,你能告诉我应该如何映射它吗? 我尝试使用它但没有成功:
mapping.Id(x => x.Id, "id").GeneratedBy.Sequence("hibernate-sequence");
我在使用它之前创建了 hibernate-sequence 。
问候
I`m a newbie in Fluent Nhibernate.
I have a PostgreSQL database and what I want is a generated id with auto increment.
I have not seen feature auto increment in PostgreSQL and I understand that to use auto increment in PostgreSQL I have to create a sequence.
Is there another way besides sequences?
If create sequence
is the only way, can you tell me how I should mapping it?
I tried to use this and had no success:
mapping.Id(x => x.Id, "id").GeneratedBy.Sequence("hibernate-sequence");
I have created hibernate-sequence
before using it.
Regards
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
奇怪,但是如果您调用
Save(Object)
而不是SaveOrUpdate(Object)
,那么使用您的代码,插入工作正常。编辑 #1
这对我有用。
实体:
以及具有模式导出的配置:
Strange, but with your code an insertion works fine, if you call
Save(Object)
instead ofSaveOrUpdate(Object)
Edit #1
That's what worked for me.
Entity:
And configuration with schema export:
这就是 Frank 提到的 SERIAL 数据类型。
只需将有问题的列创建为 SERIAL,您就有一个自动增量列:
然后您需要在 Hibernate 中将该列注释为“自动增量”(因为我不使用 Hibernate,所以我无法告诉您具体是如何实现的)已完成)。
That's the SERIAL datatype mentioned by Frank.
Just create the colum in question as SERIAL and you have an auto-increment column:
Then you need to annotate that columns as an "auto increment" in Hibernate (as I don't use Hibernate, I can't tell you how exactly that is done).
只需使用数据类型SERIAL。
Just use the datatype SERIAL.