0

我有一个(简化的)Hibernate 模型,如下所示:

public class CoverageLine {
  private Long id;
  private String coverageText;
  private boolean coveragePresetTo = true;
  private OnNewPolicy onNewPolicy = OnNewPolicy.SHOW;
}

我需要将coverageText(由最终用户)翻译成任意多种语言,但使用相同的ID,这样我就可以用英语或德语请求政策(添加行),并拥有相关版本getCoverageText() 返回的文本。其他字段在数据库中是不可翻译的,它们是使用资源文件翻译的,因此数据库中对象的多个版本是不可取的。

我的初步计划是制作一个 JSON clob 字段,并将所有值存储在其中 ([{"lang":"en","value","...."}],[{"lang":"de " ...}]),将语言设置为瞬态字段,并使用 get/set 方法操作 JSON,但这并不真正具有最佳实践的感觉。或者,拥有第二个带有 line-id、语言和字符串的表,但这有可能使我的数据模型大大膨胀,而不仅仅是拥有更多的 SQL-y 数据。

有什么建议么?

4

1 回答 1

2

将所有选项发送到 UI 并不是我的首选。

一种方法是将措辞存储在表格中。Coverage 表将有一个语言列外键来挑选您正在处理的语言。该值将被加载到对象中,您就完成了。

缺点是区域设置更改需要往返于服务器、数据库和返回。

Spring 使用依赖于语言环境的视图来实现这一点。也许你也可以试试。

于 2009-10-19T09:55:50.687 回答