发布
社区首页 >问答首页 >在hibernate中将具有相同模式的多个表映射到相同的POJO

在hibernate中将具有相同模式的多个表映射到相同的POJO
EN

Stack Overflow用户
提问于 2011-08-24 04:20:10
回答 2查看 2K关注 0票数 2

我正在写一个程序,将显示一本书的不同翻译取决于选择。因此,假设我有3个表,在DB中有相同的列,比如英语、法语和德语。然后我有一个POJO,比如说Book.java。

现在,我如何根据用户选择使用相同的类来查询特定表。是否要更改@table(name="...")的值动态的?这有可能吗?我使用jdbc已经有一段时间了,但这将是我的第一个hibernate项目。

EN

回答 2

Stack Overflow用户

发布于 2011-08-24 04:26:28

您可以将所有字段和方法存储在一个用@MappedSuperclass注释的基类中,并有三个不同的子类,每个子类都有一个不同的@Table注释值。

但对我来说,这似乎是一个规范化问题。如果您有三个表分别保存相同的列,为什么不使用一个包含额外language列的表呢?

票数 6
EN

Stack Overflow用户

发布于 2011-08-24 04:27:01

你应该设计一个类的层次结构: Book类是最顶层的类,BookFrench,BookGerman,BookEnglish是子类。然后,您将不得不使用hibernate继承模型之一(为此,我认为MappedSuperClass将是最有趣的模型)。然后,您将拥有不同的类,但所有实例都将是book Pojos,并且每个子类在DB中都有自己的表。

问候你,斯特凡

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7167059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档