JPA中的多语言字段是否有一个干净的解决方案?
我想到这个db结构:
表产品
+---------+--------------+-----+
| Field | Type | Key |
+---------+--------------+-----+
| id | bigint(20) | PRI |
| price | varchar(255) | |
+---------+--------------+-----+
table 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;
}
答案 0 :(得分:0)
IMO,错误的解决方案。如果你真的想要db国际化,我宁愿创建多个数据库,而不是一个包含所有数据的数据库。
只需检查语言以获得正确的数据库连接。
答案 1 :(得分:0)
我不确定您是否可以按照提议的方式将一个实体映射到两个表。与您想要的类似,您可以将翻译存储为:
@CollectionOfElements
Map<String, String> titles;
其中键是用户正在浏览的Lang的字符串以及要显示的标题的值。这将在数据库中创建两个表,并允许快速访问翻译。