当前位置: 首页 > 知识库问答 >
问题:

JPA StoredProceduRequery:将UUID作为参数传递

谷梁翰飞
2023-03-14
StoredProcedureQuery proc = em.createStoredProcedureQuery(myProc)
        .registerStoredProcedureParameter(0, UUID.class, ParameterMode.IN)
        .registerStoredProcedureParameter(1, ...)
        .setParameter(0, myUuid)
        .setParameter(1, ...);
ERROR: function my_function(bytea, ...) does not exist.
my_function(UUID, ...)

可能类似于我们在实体类中使用的注释:

@Type(type="pg-uuid")
private UUID uuid;

一个明显的变通方法是将值作为字符串传递,然后在函数内部将其强制转换为UUID,但是...

共有1个答案

束高雅
2023-03-14

在EclipseLink 2.7.6和Postgres 11.8中,它可以工作,我希望它也可以在Hibernate中工作;原来我也是以“bytea”结束的。首先我需要这个微不足道的转换器,我不知道为什么我必须将UUID转换为UUID,但它工作。

import java.util.UUID;
import javax.persistence.AttributeConverter;
import javax.persistence.Converter;

@Converter(autoApply = true)
public class UUIDConverter implements AttributeConverter<UUID, UUID> {

@Override
public UUID convertToDatabaseColumn(final UUID uuid) {
    return uuid;
}

@Override
public UUID convertToEntityAttribute(final UUID uuid) {
    return uuid;
}

}

函数api如下所示:

create or replace function generate_namespace(idSubscription uuid) returns integer as 
...
final StoredProcedureQuery query = manager.createStoredProcedureQuery("generate_namespace");
query.registerStoredProcedureParameter(1, UUID.class, ParameterMode.IN);
query.setParameter(1, idSubscription);
final Object[] result = (Object[]) query.getSingleResult();
return manager.find(Namespace.class, result[0]);
 类似资料:
  • 问题内容: 如何在不执行“父”函数或不使用函数的情况下将函数作为参数传递?(因为我已经读到它是不安全的。) 我有这个: 它可以工作,但是问题是在调用函数时触发,而不是在函数中使用时触发。 根据我所读的内容,我可以使用来解决它,但这不是最佳实践。如何在JavaScript中将函数作为参数传递? 问题答案: 您只需要删除括号: 然后,这将传递函数而不先执行它。 这是一个例子:

  • 问题内容: 我可以将数组作为url参数传递的最佳方法是什么?我在想这是否可能: 还是这样: 香港专业教育学院阅读示例,但我发现它很混乱: 问题答案: 有一个非常简单的解决方案:。它把您的查询参数作为一个关联数组: 将返回 为您处理所有必需的转义(=> 和=> ),因此此字符串等于。

  • 问题内容: 我有3类调用,和。 在我的课程中,我想要一个这样的方法: 因此,例如,我想: 如何将类名作为参数,并基于该类名从类名创建适当的对象? 问题答案: 使用反射是可能的。这里是给定的className(作为字符串传递)。此类将在内存中搜索(应该已经加载)。 作为字符串传递时要实例化的类的名称应 完全限定

  • 我有一个简单的方法,我想把片段名作为参数传递。我几乎没有像这样的碎片 1) AddNewDatesFragment 2) AskFragment 3)免责声明片段 我有下面的代码可以正常工作 我想在方法中编写一些代码,在这里我可以调用这样的方法 等 我曾经尝试过这样的代码,但在if条件下不工作会导致编译时错误。 我对实施这种方法感到好奇。谢谢

  • 我正在尝试将FirebaseFirestore用户Uid传递给Stripe/firestore云函数。 所以我会有一个如下的https查询: https://connect.stripe.com/express/oauth/authorize?response_type=code 这是我的功能

  • 问题内容: 我已经熟悉Android框架和Java,并希望创建一个通用的“ NetworkHelper”类,该类可以处理大多数联网代码,使我能够从中调用网页。 我遵循了来自developer.android.com的这篇文章来创建我的网络类:http : //developer.android.com/training/basics/network- ops/connecting.html 码: