我正在尝试使用带连接的 hibernate 查询语言在 mySQL 数据库中查找日期列的最大值
@Query("select o.techid, CAST(MAX(o.last_modified) AS DATE)
from com.dw.model.user.User as u
left join com.dw.model.order.Order as o
on u.username=o.techid group by o.techid")
List<User> findUsers();
模型类 =
@Entity(name = "orders")
@Scope("prototype")
@Component
@JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class)
public class Order {
@Id
private long orderNumber;
private Date last_modified;
我收到这个错误:-
Caused by: java.lang.IllegalStateException: DOT node with no left-hand-side!
任何人都可以告诉我如何在 Hibernate 中编写这个来帮助我吗?
最佳答案
删除您的包名称。实体仅由其名称定义。点用于表之间的属性和链接(当定义为 @ManyToOne* 属性时)。
select o.techid, CAST(MAX(o.last_modified) AS DATE)
from User as u
left join Order as o
on u.username=o.techid group by o.techid
编写 HQL 时考虑类和属性,而不是列。
关于java - 没有左侧的 DOT 节点使用带连接的 HQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33962989/