类型不匹配:数字、日期或字符串预期hibernate LocalDate

问题描述 投票:0回答:1

任务。


外地 dates 有型 date数据库.

create table items
(
    id   serial primary key,
    dates date
);

实体: / 字段 "date",类型 "LocalDate"。

@Entity
@Table(name = "items")
public class Item {
    private LocalDate date;

    @Column(name = "dates")
    public LocalDate getDate() {
        return date;
    }
}

class UserStore:

class UserStore {
    private final SessionFactory factory = new Configuration()
            .configure().buildSessionFactory();

    public List<?> findByDate() {
        Session session = factory.openSession();
        session.beginTransaction();
        final String sql = "from Item i where i.date between ?1 and ?2";
        Query query = session.createQuery(sql, Item.class);
        query.setParameter(1, LocalDate.now());
        query.setParameter(2, LocalDate.now());
        List<?> result = query.getResultList();
        session.getTransaction().commit();
        session.close();
        return result;
    }
}

pom.xml

        <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.4.12.Final</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-java8 -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-java8</artifactId>
            <version>5.4.17.Final</version>
        </dependency>

添加。

 <property name="dialect">org.hibernate.dialect.PostgreSQL9Dialect</property>

在sql请求中, "from Item i where 一、日期 1和2之间",场 一、日期 用红色高亮显示,表示有 jpa错误 并要求使用Date类型。

to look a mistake

如果我使用类型 Date 而是 LocalDate 错误的逃避。但我需要 LocalDate 型。


如何解决?

ps. 代码编译正确.代码实现不重要.问题一: 如何在不关闭检查的情况下消除错误。

java hibernate jpa mismatch
1个回答
0
投票

移除 hibernate-java8 汝之器物 pom.xml. 它是 弃用. 该 hibernate-core 就可以了。我已经测试了你的查询,对我来说,它的效果很好。LocalDate.

© www.soinside.com 2019 - 2024. All rights reserved.