【发布时间】:2016-04-07 08:35:32
【问题描述】:
在两个日期之间调用查询会返回一个空数组,但它不应该。
我正在使用这个“简单”的 spring 存储库:
import java.time.LocalDate;
import java.util.List;
import org.springframework.data.repository.CrudRepository;
import com.company.app.domain.DailySales;
public interface DailySalesRepo extends CrudRepository<DailySales, Long> {
public List<DailySales> findByDateBetween(LocalDate start, LocalDate end);
}
我在我的服务中调用该方法:
public class ImplSalesService implements SaleService {
private static final long serialVersionUID = 1L;
protected final Log logger = LogFactory.getLog(getClass());
@Autowired
private DailySalesRepo dailySalesRepo;
public List<DailySales> getDailySales(LocalDate start, LocalDate end) {
logger.debug("getDailySales with params start/end: " + start.toString() + "/" + end.toString());
List<DailySales> result = dailySalesRepo.findByDateBetween(start, end);
return result;
}
}
我知道 hibernate 正在获取权限参数,因为我可以在日志中看到:
Hibernate: select dailysales0_.id as id1_0_, dailysales0_.amount as amount2_0_, dailysales0_.currency as currency3_0_, dailysales0_.date as date4_0_, dailysales0_.tenantId as tenantId5_0_ from agg_dailysells dailysales0_ where dailysales0_.date between ? and ?
10:16:03,674 TRACE BasicBinder:83 - binding parameter [1] as [VARBINARY] - 2016-02-01
10:16:03,682 TRACE BasicBinder:83 - binding parameter [2] as [VARBINARY] - 2016-05-12
将该跟踪复制到 SQL 控制台会返回 101 项:
select dailysales0_.id as id1_0_, dailysales0_.amount as amount2_0_, dailysales0_.currency as currency3_0_, dailysales0_.date as date4_0_, dailysales0_.tenantId as tenantId5_0_ from agg_dailysells dailysales0_ where dailysales0_.date between "2016-02-01" and "2016-05-12";
结果:返回 101 行
但是List<DailySales> result 得到一个空列表。
我做错了什么?
我的实体看起来像:
@Entity
@Table(name="agg_dailysells")
public class DailySales implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private Integer tenantId;
private LocalDate date;
private Double amount;
private Integer currency;
... getters and setters go here ...
【问题讨论】:
-
hibernate 和 Spring Data 哪个版本?
-
我正在使用 org.hibernate:hibernate-entitymanager:4.2.0.Final 和 org.springframework.data:spring-data-jpa:1.9.4.RELEASE
-
@BlackBishop 如果它仍然相关,请查看我的答案。
标签: java spring hibernate spring-data spring-data-jpa