Mysql 使用JPA的用户级i18n(Hibernate)

Mysql 使用JPA的用户级i18n(Hibernate),mysql,hibernate,jpa,jakarta-ee,internationalization,Mysql,Hibernate,Jpa,Jakarta Ee,Internationalization,我有一个使用J2EE/JSF、JPA(Hibernate)和MySQL数据库的web应用程序 此web应用程序允许用户输入有关各种实体的字符串数据,我们现在需要允许使用多种语言。计划是允许用户输入一种基本语言,然后对他们想要支持的每种语言重复这个过程。输入的数据由移动应用程序序列化和下载,移动应用程序应能够以特定语言请求数据,如果请求的语言不可用,则默认为基础语言 我正在寻找关于如何实现前半部分的建议,即如何使用Hibernate存储多个语言版本,同时尽量减少faff/和性能降低。很高兴使用Hi

我有一个使用J2EE/JSF、JPA(Hibernate)和MySQL数据库的web应用程序

此web应用程序允许用户输入有关各种实体的字符串数据,我们现在需要允许使用多种语言。计划是允许用户输入一种基本语言,然后对他们想要支持的每种语言重复这个过程。输入的数据由移动应用程序序列化和下载,移动应用程序应能够以特定语言请求数据,如果请求的语言不可用,则默认为基础语言


我正在寻找关于如何实现前半部分的建议,即如何使用Hibernate存储多个语言版本,同时尽量减少faff/和性能降低。很高兴使用Hibernate的操作系统库和插件来防止重新发明轮子。如果有一个简单的解决方案可以使用我已经拥有的堆栈来实现,我也很高兴…

我认为您可以自己相对轻松地完成这项工作,而无需寻找一些框架。只需将需要在一个实体中翻译的数据项与默认值一起存储,并在另一个实体中引用该数据项,该实体保存特定iso代码的翻译。然后,第一个实体中的命名查询可以为您提供给定键的翻译或默认翻译

关于性能,它取决于我们所说的数据量。如果这与应用程序的典型消息包相当,您可以在启动时将其加载到内存中并提供给您的应用程序,或者如果这不可行,则可以依靠数据库索引和entitymanager的缓存,在应用程序稍微预热后为您提供相对快速的访问