JPA 查询 returns 错误结果

JPA query returns wrong result

我已经实现了我的自定义 CRUD 存储库,它添加了一些额外的功能,比如在某个日期之后获取第一张下一张图片(我正在使用它来查找其他图片之后的下一张图片)。但出于某种原因,它并没有 return 我预期的结果。有时 returned 图片与用于搜索的图片相同(这张图片的日期)。我 100% 确定,我所有的照片都有唯一的创建日期。

有人知道我的代码有什么问题吗?

public class PictureRepositoryImpl implements CustomPictureRepository {

@PersistenceContext
private EntityManager em;

@Override
public Picture next(Date date) {

    TypedQuery<Picture> q = em.createQuery("select p from Picture p where p.dateCreated > :date order by p.dateCreated asc", Picture.class);
    q.setParameter("date",date, TemporalType.DATE);
    Picture picture = q.setFirstResult(0)
            .setMaxResults(1)
            .getSingleResult();


    if(picture == null)
    {
        return null;
    }

    LoggerFactory.getLogger(DemoApplication.class).info("Fetched nextpicture: " + picture.getId() + ")");

    return picture;
}
}

更新: 我期待在“2016-03-20”之后得到第一张图片,而不是它,我得到了相同的图片。

我已经解决了这个问题,似乎主要问题不是使用时间戳,请参见下面的代码。

 TypedQuery<Picture> q = em.createQuery("select p from Picture p where p.dateCreated < :date order by p.dateCreated desc", Picture.class);
    q.setParameter("date", date, TemporalType.TIMESTAMP);

    List<Picture> pictures = q
            .setMaxResults(1)
            .getResultList();