小编Gui*_*ssi的帖子

使用 JPA / Hibernate 进行国际化的最优雅的解决方案?

亲爱的 Stackflow 社区,

我希望在我的实体中存储国际化字符串,但我正在努力解决如何解决这个问题。我将在这里描述我能想到的两种解决方案,并希望收到您的反馈。

解决方案 1:从实体外部化

在此解决方案中,我的数据库中有下表:

LabelId         Language    VALUE   Entity              Id

WELCOME_TEXT    EN          "..."       Questionnaire   1
WELCOME_TEXT    DE          "..."       Questionnaire   1
GOODBYE_TEXT    EN          "..."       Questionnaire   1
GOODBYE_TEXT    DE          "..."       Questionnaire   1

QUESTION_TITLE  EN          "..."       Question        12
QUESTION_TITLE  DE          "..."       Question        12

OPTION_NAME     EN          "..."       Option          23
OPTION_NAME     DE          "..."       Option          23

FACTOR_NAME     EN          "..."       Factor          11
FACTOR_NAME     DE          "..."       Factor          11
Run Code Online (Sandbox Code Playgroud)

我总是使用以下方法访问该集合:

void setLabels(Entity entity, LabelId labelId, Map<String, String langValues)
Map<String, String> getLabels(Entity entity, LabelId labelId)
Run Code Online (Sandbox Code Playgroud)

解决方案 2:使用元素集合

在此解决方案中,所有实体都将 …

sql hibernate jpa internationalization

6
推荐指数
1
解决办法
2152
查看次数

标签 统计

hibernate ×1

internationalization ×1

jpa ×1

sql ×1