【发布时间】:2016-12-08 14:29:29
【问题描述】:
我在我的应用程序中使用 spring-data-jpa 1.9.2、mysql-connector 5.1 和 hibernate 4.3.11 Final。
我的订单类有一个日期类型的“创建”属性。
@Entity
public class Order implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private java.util.Date creation;
}
在我的 JpaRepository 中,我有这两种方法来按日期获取订单:
List<Order> findByCreation(Date date);
@Query("select o from Order o where o.creation = ?1")
List<Order> findByCreation2(Date date);
我没有例外,但总是一个空列表,这可以帮助您理解:
Date date = new Date();
Order order = new Order(date);
orderRepository.save(order);
Date creationFromDB = orderRepository.findOne(1L).getCreation();
System.out.println("eq? : "+ creationFromDB.equals(order.getCreation()));
List<Order> ods = orderRepository.findByCreation(creationFromDB);
List<Order> ods2 = orderRepository.findByCreation2(creationFromDB;
System.out.println("\n ods.size: " + ods.size() +", ods2.size: "+ods2.size());
输出是:
eq? : true
ods.size: 0, ods2.size: 0
注意
选择请求已经正确执行了两次:
DEBUG org.hibernate.SQL - select order0_.id as id2_4_, order0_.creation as creation3_4_ from Orders order0_ where order0_.creation=?
我错过了什么?
【问题讨论】:
标签: java mysql sql date spring-data