相关疑难解决方法(0)

JPA Hibernate调用Postgres函数Void返回MappingException:

我有一个问题,我得到一个:org.hibernate.MappingException:没有JDBC类型的Dialect映射:1111尝试使用JPA创建本机查询时调用postgres函数.

我在一个启动单例中创建了一个EJB计时器,每6个小时运行一次Postgres函数.该函数返回void并检查过期记录,删除它们并更新某些状态.它不需要参数,它返回void.

  • 如果我使用PgAdmin查询工具(select function();)调用它并返回void,则postgres函数运行完美.

  • 当我在Glassfish 3.1.1上部署应用程序时,我遇到异常并且部署失败.

这是(缩短的)堆栈跟踪:

WARNING: A system exception occurred during an invocation on EJB UserQueryBean method public void com.mysoftwareco.entity.utility.UserQueryBean.runRequestCleanup()
javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean
...STACK TRACE BLAH BLAH BLAH ...
Caused by: javax.persistence.PersistenceException: org.hibernate.MappingException: No Dialect mapping for JDBC type: 1111
Run Code Online (Sandbox Code Playgroud)

这是代码:

首先是JPA的东西:

public void runRequestCleanup() {
    String queryString = "SELECT a_function_that_hibernate_chokes_on()";
    Query query = em.createNativeQuery(queryString);
    Object result = query.getSingleResult();
}
Run Code Online (Sandbox Code Playgroud)

这是单身人士称之为:

@Startup
@Singleton
public class RequestCleanupTimer {
    @Resource
    TimerService timerService;
    @EJB
    UserQueryBean queryBean;

    @PostConstruct …
Run Code Online (Sandbox Code Playgroud)

stored-procedures hibernate jpa function postgresql-9.1

11
推荐指数
2
解决办法
1万
查看次数

使用Spring调用数据库函数

我需要通过 SQL 查询数据库的函数,就像这样简单

@Query("SELECT random()")

如何实现域/存储库服务方法来执行此操作?

java spring spring-data spring-data-jpa spring-boot

1
推荐指数
1
解决办法
9272
查看次数