JPA 中的多语言字段是否有干净的解决方案?
我想到了这个数据库结构:
餐 table 产品
+---------+--------------+-----+
| Field | Type | Key |
+---------+--------------+-----+
| id | bigint(20) | PRI |
| price | varchar(255) | |
+---------+--------------+-----+
表 product_lang
+------------------+--------------+-----+
| Field | Type | Key |
+------------------+--------------+-----+
| id | bigint(20) | PRI |
| lang | varchar(3) | PRI |
| title | varchar(255) | |
| description | varchar(255) | |
+------------------+--------------+-----+
这是我想使用的类:
@Entity
public class Product {
@Id
public Long id;
public Double price;
public Locale lang;
@Translateable
public String title;
@Translateable
public String description;
}
最佳答案
我不确定您是否可以按照您建议的方式将一个实体映射到两个表。与您想要的类似,您可以将翻译存储为:
@CollectionOfElements
Map<String, String> titles;
其中键是用户正在浏览的语言的字符串和要显示的标题的值。这将在数据库中创建两个表并允许快速访问翻译。
关于hibernate - Play 框架中数据库级别的国际化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7890331/