gpt4 book ai didi

java - 是否可以将 JPA 实体映射到存储过程(函数)?

转载 作者:行者123 更新时间:2023-12-02 12:49:38 26 4
gpt4 key购买 nike

我需要将 JPA 实体映射到返回表的 Postgres 函数。所以每次我查询这个实体时,它都会自动调用这个函数。是否可以?也许@NamedNativeQuery 可以提供帮助?

类似于 this也许?

最佳答案

如果您的函数没有任何参数,您可以将其封装在 View 中:

CREATE VIEW my_entity_procedure AS
SELECT 'Id:' || i AS some_field, i FROM generate_series(0, 100) i;

然后将其映射到只读实体(@Immutable)。

我同意,这很奇怪,我不推荐这种方法。请记住,您可以使用 ResultTransformer 转换对象列表(本例中为 DTO)中的原始 ResultSet。像下面这样的东西必须有效:

public List<MyFunctionDTO> getAllFromMyFunction() {
StringBuilder sql = new StringBuilder("SELECT i FROM generate_series(0, 100) i");
Query query = getHibernate().getSession().createSQLQuery(sql.toString());
query.setResultTransformer(Transformers.aliasToBean(MyFunctionDTO.class));
return query.list();
}

关于java - 是否可以将 JPA 实体映射到存储过程(函数)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44650105/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com