我想将多种语言添加到具有不同列的数据库中:
id
description
description_es
description_fr
description_ge
price
并且只返回一个翻译
class Product(val id: Long, val description: String, val price: Float)
我如何告诉Spring Data使用哪个描述列,以便它将对象返回给我?
我唯一遇到的事情是拥有继承类,并在每个类中使用@Column作为描述,但这迫使我拥有4个方法,每个方法都有一个类型,并使用开关来选择要调用的方法,这不优雅,也不可扩展。
是否有任何方法可以将列Map传递到存储库?
2条答案
按热度按时间ghhaqwfi1#
一个更好的表设计应该是这样的:
这是一种更加规范化的设计,其中每个说明/价格元组针对每种语言单独显示。现在,如果您需要给定语言和说明的价格,只需查询表即可。
1qczuiv02#
也许您希望使用基于类的投影或SpringDataJPA的动态投影。
而这里是这个功能能够工作的要求,我引用了这个参考链接,让你看看进一步的细节。
要使投影类与存储库接口协同工作,其构造函数的参数名称必须与根实体类的属性匹配。