HQL 对象命名参数

标签 hql

我想知道是否可以从 HQL 中名为参数的对象检索特定列。

示例

public class Product
{
    private int id;
    private Supplier supplier;

    private String name;
    private String description;
    private double price;

    public Product()
    {
        super();
    }

    public Product(String name, String description, double price)
    {
        super();
        this.name = name;
        this.description = description;
        this.price = price;
    }

    public String getDescription()
    {
        return description;
    }
    public void setDescription(String description)
    {
        this.description = description;
    }
    public int getId()
    {
        return id;
    }
    public void setId(int id)
    {
        this.id = id;
    }
    public String getName()
    {
        return name;
    }
    public void setName(String name)
    {
        this.name = name;
    }

    public Supplier getSupplier()
    {
        return supplier;
    }
    public void setSupplier(Supplier supplier)
    {
        this.supplier = supplier;
    }

    public double getPrice()
    {
        return price;
    }
    public void setPrice(double price)
    {
        this.price = price;
    }
}

如您所见,我创建了产品,并且其中有一个供应商对象。 所以当我执行 HQL 并调用

String hql = "from Product as product where product.supplier=:supplier";
        Query query = session.createQuery(hql);
        query.setEntity("supplier",supplier);
        List results = query.list();
        displayProductsList(results);

但是是否可以只获取产品供应商的名称? 而不仅仅是整个供应商?

最佳答案

只是不要将供应商实例传递给您的查询,而是直接传递供应商的名称:

String hql = "from Product as product where product.supplier.name = :supplierName";
Query query = session.createQuery(hql);
query.setString("supplierName", supplier.getName());
List results = query.list();
displayProductsList(results);

关于HQL 对象命名参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7011980/

相关文章:

sql - SQL错误中的复合键连接

java.lang.NumberFormatException : For input string: "pname"

java - 我可以在 HQL 查询中选择 null 作为列值吗?

java - Hibernate HQL JOIN - 获取的关联不存在

mysql - 如何在jpql查询中动态连接表

java - 如何在 JPQL 或 HQL 中进行限制查询?

java - 使用 group by 连接的 SQL 的 HQL 版本

java - Hibernate 查询用于从具有路径变量输入的表中选择值

c# - 使用 FluentNhibernate 基于列的 Mysql 排名

java - HQL返回java.lang.NoSuchMethodError