首页 > 解决方案 > 查询无法通过 HQL 执行

问题描述

我有一个数据库。我从 IDEA 连接到它。

餐厅菜单项目和 Menu 类中数据字段的描述中,我指出了指向我的表的链接或链接 (@TABLE):

@Entity
 @Table(name="menu")
 public class Menu {

这是我使用查询 HQL 的方法:

private static void priceFromTo(){
Scanner sc = new Scanner(System.in);
System.out.println("Input minimum price: ");
Double min = sc.nextDouble();
System.out.println("Input the maximum price: ");
Double max = sc.nextDouble();
System.out.println("We have these dishes with your price : ");
System.out.println();

Query query = em.createQuery("SELECT menu FROM Menu menu WHERE menu.price BETWEEN :min AND :max", Menu.class);
query.setParameter("max",max);

query.setParameter("min", min); 列表列表 = query.getResultList();

System.out.println("列表结果的大小 = " + list.size());

它不会发出任何错误,但不会对数据库进行更改(它不会从数据库接收数据),我已经尝试删除某些内容并将其输出到控制台。现在使用大小 LIST 检查它是否有效,但是,您猜对了,LIST.size = 0,尽管数据库中有足够的合适行。

也许它没有连接到数据库,但即使在日志中它也引用了我的数据库。

如有必要,我会通过 GitHub 分享更多代码,但我认为没有必要。

标签: java

解决方案


您是否尝试过将日志变为详细并查看实际的 SQL 输出是什么?

这里

该命令可能看起来像

log4j.logger.org.hibernate=verbose

推荐阅读