首页 > 解决方案 > SpringBoot / Hibernate中枚举的接口投影

问题描述

我正在尝试使用 Hibernate 本机查询从数据库中选择单个列。列类型是枚举。

爪哇

public interface TicketSummary {

    TicketStatus getSummary();
}

@Repository
public interface TicketRepository extends JpaRepository<Ticket, TicketIdentity> {

    @Query(value = "SELECT status AS summary FROM ticket_service.ticket WHERE entitlement_id IN (:entitlementId)", nativeQuery = true)
    List<TicketSummary> findAllTicketsStatusSummary(UUID[] entitlementId);
}

SQL

CREATE TYPE ticket_service.ticket_state AS ENUM( 
    'CREATED',
    'IN_PROGRESS',
    'BLOCKED',
    'CLOSED',
    'COMPLETED'
);

我在查询时不断收到以下错误。

exception captured: No Dialect mapping for JDBC type: 1111; nested exception is org.hibernate.MappingException: No Dialect mapping for JDBC type: 1111

调试

在 JdbcResultMetadata.getHibernateType 中放置断点会显示以下内容

在此处输入图像描述

请协助我找到解决方案。先感谢您。

标签: javaspring-boothibernate

解决方案


推荐阅读