Hibernate的搜索查询时间戳返回空列表

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

我工作的一个春天引导项目与Hibernate,我试图映射出时间戳一个SQL数据库。对字符串或数字等的查询做工精细,所以这个问题不应该是项目结构本身。

我User.java类的片段:

@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;
java hibernate lucene hibernate-search hibernate-query
1个回答
3
投票

你可以只使用Spring JPA没有?

因此,这将随后只是一个接口

@Repository
public interface YourModelRepository extends JpaRepository<YourModel, Integer>{
        List<YourModel> findByDatumGreaterThan(LocalDatetime datum);
}

让JPA的接口照顾它。

这里的spring jpa reference sheet

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