java - 没有左侧的 DOT 节点使用带连接的 HQL

标签 java mysql sql hibernate

我正在尝试使用带连接的 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/

相关文章:

java - 如何为 spring-boot 和 hibernate 配置 liquibase-maven-plugin

mysql - 如何从 log4j 消息插入不同的数据库列

c# - 在 Linq to Entities 中获取字符值

java - 匹配至少有一个共同词的字符串

java - 使用java生成repmat()方法

mysql - 删除某些列中可能具有空值的特定行

php - 在 MySQL 中转换 PHP json_encode UTF8 十六进制实体

针对最大值的 MySQL 查询优化

sql - 是否有与 Progress OpenEdge ABL 等效的 Microsoft SQL Server Profiler?

java - 使用configure和doConfigure配置log4j之间的区别