Java spring Web应用程序中实体本地化的最佳实践

Sch*_*rop 4 java entity hibernate localization jpa

我正在寻找在我的网站上本地化动态(用户生成的)内容的最佳方法.我正在使用spring-mvc,我发现它非常好的框架,但现在我需要使用多种语言提供多个实体.我发现对于静态文本i18n是我同意的最佳方式,但如果我理解它,它不能用于本地化存储在数据库中的东西.

因为我必须在数据库中存储本地化和原始内容,现在我需要知道这样做的最佳方式是什么,例如我有实体:

@Entity 
public class Article {

    private Long id;

    private String title;

    private String body;

}
Run Code Online (Sandbox Code Playgroud)

如果我希望它支持本地化,应该怎么看?

@Entity 
public class Article {

    private Long id;

    @OneToMany
    private Set<LocalizedTitle> localizedTitles;

    private String body;

}
Run Code Online (Sandbox Code Playgroud)

我不喜欢这个解决方案,但是我无法想出一个更好的方法,这就是为什么我要来这个地方...可能有jpa/hibernate内置的东西,我可以使用?

谢谢您的帮助

Sea*_*oyd 6

我会使整篇文章可以本地化:

物品容器:

@Entity
public class Article{

    @Id
    private Long id;

    @OneToMany(mappedBy="container")
    private Set<LocalizedArticle> localizedArticles;

}
Run Code Online (Sandbox Code Playgroud)

本地化版本:

@Entity
public class LocalizedArticle{

    @ManyToOne
    private Article container;

    @Id
    private Long id;

    private String body;

    private String title;

    private String locale;

}
Run Code Online (Sandbox Code Playgroud)

在查询中,您将按区域设置查找本地化版本.