Hibernate/NHibernate:如何将子类保留为超类的实例

发布于 2024-07-20 11:21:21 字数 372 浏览 1 评论 0原文

我想通过 NHibernate 保留两个类: - 猫,有名字和 ID, - Kitten,它是 Cat 的子类(没有额外的公共属性)。

出于愚蠢的原因,我想知道是否可以仅映射 Cat? 这样,当我持久化 Kitten 时,它会被保存为 Cat,当我重新加载它时,它会被加载为 Cat。

附加限制: - 尝试时,NHibernate 崩溃了,因为它不认识 Kitten。 - 但是我不想添加鉴别器值,因为我不想让 Hibernate 实例化 Kitten 子类。

非常感谢!

编辑 : 我忘了写下使用显式 ISession.Save("Cat", kitten) 是有效的。 我的问题发生在级联保存期间。

I have two classes I would like to persist via NHibernate:
- Cat, which has a name and an Id,
- Kitten, which is a subclass of Cat (no extra public properties).

For stupid reasons, I would like to know if it is possible to map Cat only? So that when I persist Kitten, it is saved as a Cat and when I reload it, it is loaded as a Cat.

Additional constraints :
- When trying, NHibernate crashed because it did not know Kitten.
- However I do not want to add a discriminator value, as I do not want Hibernate to instantiate the Kitten subclass.

Thank you very much!

EDIT :
I forgot to write that using explicit ISession.Save("Cat", kitten) works. My problem occurs during a cascading save.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

征﹌骨岁月お 2024-07-27 11:21:21

老问题,我想我必须使用接口。

Old question, I guess I would have to use interfaces instead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文