首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Spring数据中按参数选择colmun别名

在Spring数据中按参数选择colmun别名
EN

Stack Overflow用户
提问于 2022-09-28 02:42:43
回答 2查看 20关注 0票数 0

我希望将多种语言添加到我的数据库中,其中包含不同的列:

代码语言:javascript
运行
复制
id
description
description_es
description_fr
description_ge
price

并且只返回译文

代码语言:javascript
运行
复制
class Product(val id: Long, val description: String, val price: Float)

我如何告诉Spring数据使用哪一种描述列以便它将对象返回给我?

唯一发生在我身上的事情是拥有具有继承的类,并在每个类中使用@Column作为描述,但这迫使我有4个方法,每个方法都有一个类型,并使用一个开关来选择调用哪个类,这是不优雅的,不具有可伸缩性。

有任何方法将列映射传递到存储库吗?

EN

回答 2

Stack Overflow用户

发布于 2022-09-28 02:49:38

一个更好的桌子设计应该是这样的:

代码语言:javascript
运行
复制
desc_id | description | lang
1       | water       | eng
1       | agua        | sp
1       | eau         | fr
...

这是一种更加规范化的设计,在这种设计中,每种描述/价格元组分别出现在每种语言中。现在,如果您想要给定语言和描述的价格,您可以简单地查询表。

票数 1
EN

Stack Overflow用户

发布于 2022-09-28 03:19:11

也许您想要使用Spring数据JPA的基于类或动态投影。下面是一些例子

代码语言:javascript
运行
复制
public interface ProductRepository extends JpaRepository<Product, Long> {
    // ...
    ProductEsDto findById(Long Id);
    ProductFrDto findById(Long Id);
    ProductGeDto findById(Long Id);
    <T> T findById(Long Id, Class<T> type);
}

这里是这个功能能够工作的要求,我引用了这个参考链接,让您看更多的细节。

要使投影类与存储库接口协同工作,其构造函数的参数名称必须与根实体类的属性匹配。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73875638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档