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/

10-08 22:59