如何将Hibernate中的集合映射到PostgreSQL DB,而不使用任何映射表?

时间:2015-06-08 04:25:25

标签: java hibernate postgresql jpa playframework-2.0

我想在我的表格中存储String []标签" Store"。商店实体可以有多个标签,我也没有看到任何创建任何映射的理由" store_tags"表。

所有相关标签应存储在" Store"表。从我在互联网上搜索的内容看来,JPA / Hibernate @ElementCollection注释就可以做到这一点,但它需要集合映射表。

是否可以通过hibernate在postgresql表中以String[]存储和检索数据,而无需创建任何此类映射表?

此外,如果那不可能,将String列表连接成一个字符串并将其存储在表中,是可接受的设计吗?或者会有什么不好的后果吗?请举几个例子/点,这些选项可能会在将来引起问题。

我正在使用Java Play Framework,Hibernate和PostgreSQL。

1 个答案:

答案 0 :(得分:0)

如果您真的想避免为store_tag关系使用单独的表,那么您可以考虑使用PostgreSL hstore支持。但是,您需要使用带有hibernate的UserType实现(不是核心hibernate的一部分)。因此,使用hibernate处理可能会给痛苦带来不便。只是存储和检索标签可能没问题。使用带有其他方面的标签可能是使用单独表格的有力论据。

与往常一样,我会分析常见的查询和修改用例。并明确衡量两种变体的效果。