我有一个Java项目,其中包含一个带有LocalDateTime的实体。我想通过SQL提取记录,其中LocalDateTime位于其他两个LocalDateTime之间。
实体
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(nullable = false)
private long id;
@Basic(optional = false)
@Column(nullable = false)
private long assignmentId;
@Basic(optional = false)
@Column(nullable = false)
private LocalDateTime startDateTime;
@Basic(optional = false)
@Column(nullable = false)
private LocalDateTime endDateTime;JAVA
//Sub assignments
public List<Subassignment> findAllSubassignmentsForAssignmentBetweenDates(long id, LocalDateTime startDateTime, LocalDateTime endDateTime) {
return getEntityManager().createNamedQuery("ResourceVO.findByAssignmentIdAndDates", Subassignment.class)
.setParameter("id", id)
.setParameter("sdt", startDateTime)
.setParameter("edt", endDateTime)
.getResultList();
}查询
<named-query name='ResourceVO.findByAssignmentIdAndDates'>
<query>
SELECT c FROM Subassignment AS c
WHERE (c.assignmentId IN (SELECT b.id FROM Assignment b WHERE b.resource.id = :id))
AND (c.startDateTime BETWEEN :sdt AND :edt)
</query>
</named-query>我总是收到一个“内部服务器错误”。有什么建议吗?
没有LocalDateTime参数,查询工作正常。
谢谢
马蒂希斯
发布于 2017-11-15 11:00:39
我把LocalDateTime改成了long
https://stackoverflow.com/questions/47177368
复制相似问题