JPA - i18n - 将所有名称存储在一个表中

时间:2018-04-01 07:31:52

标签: java jpa internationalization

我有不同的实体类型(例如产品,类别),都使用UUID键入。我想用多种语言存储他们的名字。以下SQL表结构对我来说最直接:

产品(ID)

类别(ID)

I18n(entity_id,lan,name)

如何使用JPA实现此类结构?

@Entity
class I18n {

    private UUID entity_id;

    @Column(length = 2)
    private String lan;

    private String name;

}

@Entity
class Product {

    @Id
    @GeneratedValue
    private UUID id;

    // TODO names from I18n

}

@Entity
class Category {

    @Id
    @GeneratedValue
    private UUID id;

    // TODO names from I18n
}

我能想到的所有解决方案都会为每个实体的i18n数据生成不同的表格(@ElementCollection,@ Embeddable)。

扩大我的问题:使用JPA(或一般SQL)存储多语言数据的推荐方法是什么

0 个答案:

没有答案