【问题标题】:Best practice for entities localization in java spring web applicationsjava spring web应用中实体本地化的最佳实践
【发布时间】:2011-05-26 13:08:54
【问题描述】:

我正在寻找在我的网站上本地化动态(用户生成)内容的最佳方式。我正在使用 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 中的东西我可以使用?

感谢您的帮助

【问题讨论】:

  • 考虑一个地图 本地化标题。与您当前的本地化标题没有太大区别,但可以从 ServletRequest 获得区域设置。
  • @dwb 只是你不能用 JPA 持久化地图

标签: java hibernate jpa localization entity


【解决方案1】:

我会让整篇文章本地化:

文章容器:

@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;

}

在您的查询中,您将按语言环境查找本地化版本。

【讨论】:

    猜你喜欢
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-02
    • 2010-10-11
    • 2015-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多