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

时间:2010-12-16 12:56:23

标签: java hibernate jpa localization entity

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

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

@Entity 
public class Article {

    private Long id;

    private String title;

    private String body;

}

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

@Entity 
public class Article {

    private Long id;

    @OneToMany
    private Set<LocalizedTitle> localizedTitles;

    private String body;

}

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

感谢您的帮助

1 个答案:

答案 0 :(得分:6)

我会将整篇文章定位为:

文章容器:

@Entity
public class Article{

    @Id
    private Long id;

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

}

本地化版本:

@Entity
public class LocalizedArticle{

    @ManyToOne
    private Article container;

    @Id
    private Long id;

    private String body;

    private String title;

    private String locale;

}

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