[英]Type mismatch: number, date or string expected hibernate LocalDate
任務:
字段dates
在數據庫中具有類型date
。
create table items
(
id serial primary key,
dates date
);
實體://字段“日期”,輸入“LocalDate”:
@Entity
@Table(name = "items")
public class Item {
private LocalDate date;
@Column(name = "dates")
public LocalDate getDate() {
return date;
}
}
class 用戶存儲:
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 請求中:“來自 Item i where i.date between?1 and?2”,字段i.date以紅色突出顯示,表示jpa 錯誤並需要使用 Date 類型:
如果我使用類型Date
而不是LocalDate
錯誤轉義。 但我需要LocalDate
類型。
如何解決?
附言。 代碼編譯正確。代碼實現並不重要。 問題一:如何在不關閉檢查的情況下排除錯誤。
從pom.xml
中刪除hibernate-java8
工件。 它已被棄用。 hibernate-core
就足夠了。 我已經測試了您的查詢,它對我來說很好用LocalDate
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.