我正在写一个程序,将显示一本书的不同翻译取决于选择。因此,假设我有3个表,在DB中有相同的列,比如英语、法语和德语。然后我有一个POJO,比如说Book.java。
现在,我如何根据用户选择使用相同的类来查询特定表。是否要更改@table(name="...")的值动态的?这有可能吗?我使用jdbc已经有一段时间了,但这将是我的第一个hibernate项目。
发布于 2011-08-24 04:26:28
您可以将所有字段和方法存储在一个用@MappedSuperclass
注释的基类中,并有三个不同的子类,每个子类都有一个不同的@Table
注释值。
但对我来说,这似乎是一个规范化问题。如果您有三个表分别保存相同的列,为什么不使用一个包含额外language
列的表呢?
发布于 2011-08-24 04:27:01
你应该设计一个类的层次结构: Book类是最顶层的类,BookFrench,BookGerman,BookEnglish是子类。然后,您将不得不使用hibernate继承模型之一(为此,我认为MappedSuperClass将是最有趣的模型)。然后,您将拥有不同的类,但所有实例都将是book Pojos,并且每个子类在DB中都有自己的表。
问候你,斯特凡
https://stackoverflow.com/questions/7167059
复制相似问题