相关疑难解决方法(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万
查看次数

在不同情况下使用不同的Hibernate用户类型

我使用Hibernate + JPA作为我的ORM解决方案.

我使用HSQL进行单元测试,将PostgreSQL用作真正的数据库.

我希望能够将Postgres的本机UUID类型与Hibernate一起使用,并在其字符串表示中使用UUID和HSQL进行单元测试(因为HSQL没有UUID类型).

我正在使用具有Postgres和HSQL单元测试的不同配置的持久性XML.

这是我如何让Hibernate"看到"我的自定义UserType:

@Id
@Column(name="UUID", length=36)
@org.hibernate.annotations.Type(type="com.xxx.UUIDStringType")
public UUID getUUID() {
    return uuid;
}


public void setUUID(UUID uuid) {
    this.uuid = uuid;
}
Run Code Online (Sandbox Code Playgroud)

这很有效.但我需要的是能够在XML中替换注释的"com.xxx.UUIDStringType"部分,或者从可以在不重新编译的情况下更改的属性文件.

有任何想法吗?

java annotations hibernate jpa hsqldb

5
推荐指数
3
解决办法
6337
查看次数

没有 JDBC 类型的方言映射:1111(本机查询)

我遇到了按照标题的错误query.getResultList();运行本机查询时在类文件上JsonbHibernateExampleApplicationTests返回 json 对象。

json返回非类型列没有问题。

请协助并让我知道是否需要更多信息。

下面是源代码

public class JsonbHibernateExampleApplicationTests {

    @Autowired
    private PersonRepository repository;

    @Autowired
    private ApplicationContext appContext;

    @Test
    public void contextLoads() {
        EntityManagerFactory entityManagerFactory = (EntityManagerFactory) appContext
                .getBean("entityManagerFactory");

        EntityManager entityManager = entityManagerFactory.createEntityManager();

        String sql = "select additional_data  from person";

        javax.persistence.Query query = entityManager.createNativeQuery(sql);
        query.getResultList();
        //List<JsonDataUserType> list = (List<JsonDataUserType>) query.getResultList();
        /* System.out.println("list:" + list);
        for (JsonDataUserType json: list)
        {
            System.out.println("json:" + json);
        }*/
        //List<Object[]> objects = query.getResultList();
        //System.out.println("result:"+ objects);

    }

}
Run Code Online (Sandbox Code Playgroud)

我在实体中将additional_data列指定为自定义json类型

@Type(type = "JsonDataUserType") …
Run Code Online (Sandbox Code Playgroud)

java json

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

将MySQL连接到Spring应用程序

我想使用MySQL数据库,而不是像hsqldb那样使用运行时数据库.我克隆了这个存储库,它使用hsqldb作为其数据库.

因为我想学习如何使用基于rest的spring应用程序的关系数据库.所以我对pom.xml进行了以下更改:更改了pom.xml:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.springsource.restbucks</groupId>
    <artifactId>restbucks</artifactId>
    <packaging>war</packaging>
    <version>1.0.0.BUILD-SNAPSHOT</version>
    <name>Spring RESTBucks</name>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.1.5.RELEASE</version>
    </parent>

    <properties>
        <spring-data-releasetrain.version>Evans-RC1</spring-data-releasetrain.version>
        <tomcat.version>8.0.9</tomcat.version>
    </properties>

    <dependencies>

        <!-- Spring Data REST -->

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-rest</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.hibernate</groupId>
                    <artifactId>hibernate-entitymanager</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>

        <!-- JDK 8 DateTime support for Hibernate -->

        <dependency>
            <groupId>org.jadira.usertype</groupId>
            <artifactId>usertype.extended</artifactId>
            <version>3.2.0.GA</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jsr310</artifactId>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
        </dependency>

        <!-- Database >

        <dependency>
            <groupId>org.hsqldb</groupId>
            <artifactId>hsqldb</artifactId> …
Run Code Online (Sandbox Code Playgroud)

java mysql spring spring-boot

2
推荐指数
5
解决办法
3万
查看次数