时间戳 returns 空列表的 Hibernate 搜索查询
Hibernate Search Query for timestamp returns empty list
我正在使用 Hibernate 开发一个 Spring 引导项目,我正在尝试从 SQL- 数据库中映射时间戳。其他针对字符串或数字的查询工作正常,所以问题应该不是项目结构本身。
我的片段 User.java class:
@Indexed
@Entity
public class User {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;
@Field
@Basic
private java.sql.Timestamp datum;
public java.sql.Timestamp getDatum() {
return datum;
}
}
我的搜索服务片段:
FullTextEntityManager fullTextEntityManager =
org.hibernate.search.jpa.Search.
getFullTextEntityManager(entityManager);
QueryBuilder queryBuilder =
fullTextEntityManager.getSearchFactory()
.buildQueryBuilder().forEntity(User.class).get();
org.apache.lucene.search.Query query =
queryBuilder.range().onField("datum")
.below(java.sql.Timestamp.valueOf("1980-02-01 11:02:20.000")).createQuery();
org.hibernate.search.jpa.FullTextQuery jpaQuery =
fullTextEntityManager.createFullTextQuery(query, User.class);
@SuppressWarnings("unchecked")
List<User> results = (List<User>) jpaQuery.getResultList();
return results;
你可以只使用 SpringJPA 不?
所以它只是一个接口
@Repository
public interface YourModelRepository extends JpaRepository<YourModel, Integer>{
List<YourModel> findByDatumGreaterThan(LocalDatetime datum);
}
让 JPA 的界面来处理它。
我正在使用 Hibernate 开发一个 Spring 引导项目,我正在尝试从 SQL- 数据库中映射时间戳。其他针对字符串或数字的查询工作正常,所以问题应该不是项目结构本身。
我的片段 User.java class:
@Indexed
@Entity
public class User {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;
@Field
@Basic
private java.sql.Timestamp datum;
public java.sql.Timestamp getDatum() {
return datum;
}
}
我的搜索服务片段:
FullTextEntityManager fullTextEntityManager =
org.hibernate.search.jpa.Search.
getFullTextEntityManager(entityManager);
QueryBuilder queryBuilder =
fullTextEntityManager.getSearchFactory()
.buildQueryBuilder().forEntity(User.class).get();
org.apache.lucene.search.Query query =
queryBuilder.range().onField("datum")
.below(java.sql.Timestamp.valueOf("1980-02-01 11:02:20.000")).createQuery();
org.hibernate.search.jpa.FullTextQuery jpaQuery =
fullTextEntityManager.createFullTextQuery(query, User.class);
@SuppressWarnings("unchecked")
List<User> results = (List<User>) jpaQuery.getResultList();
return results;
你可以只使用 SpringJPA 不?
所以它只是一个接口
@Repository
public interface YourModelRepository extends JpaRepository<YourModel, Integer>{
List<YourModel> findByDatumGreaterThan(LocalDatetime datum);
}
让 JPA 的界面来处理它。