使用Play,有一种简单的方法可以执行以下操作!框架和hibernate?
我有一篇包含pubDate,作者等通用数据的文章。 在课堂上有两个领域,标题和内容,但需要以不同的语言提供。包含id的所有其他数据应该是相同的。
系统的服务器端将根据客户端的设置选择要推出的标题/内容,可选择默认语言或首选语言。由于同步,重要的是保持所有链接语言的文章ID相同。
目前我在课堂上有内容和标题,我想知道我是否应该将具有所有基本信息的基类子类化并添加内容/标题,我们保留默认语言的内容/标题在基类中,并且可选地将additinoal语言的内容/标题添加为单独的类(并且在将其推送到客户端时,如果需要,将其替换为基类中的内容)。
解决此问题的最佳方法是什么?
答案 0 :(得分:2)
我不会进行子类化,因为语言首选项是一个渲染问题。 Article
没有不同的行为,因为内容使用的语言不同。
我的Article
课程包括标题,内容和语言。主键现在是文章ID和语言。当用户要求提供特定标题时,我会使用文章ID以及他们的语言偏好或默认(如果没有提供)来查询它。
答案 1 :(得分:0)
如果在这种情况下不易使用i18n,我会在单独的表中实现特定于语言的数据。
您可以拥有Article
和ArticleDetail
型号。在此模型中,您有一篇文章和本文的许多语言实例。
@Entity
public class Article extends Model {
private Author author;
private Date pubDate;
...
}
@Entity
public class ArticleDetail extends Model {
@MayToOne
private Article
private String languageCode;
private String title;
private String content;
...
}
因此,如果您想选择内容,请拨打ArticeDetail.find("article.id=? and langCode=?", articleId, langCode)