欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

一、HQL语句--from(检索对象)

程序员文章站 2022-05-02 17:12:19
...

from字句:HQL语句最简形式。from指定了HQL语句查询的主体–持久化类及其属性。

from子句中持久化类的引用: 
1、不需要引入持久化类的全限定名,直接引入类名即可。eg:from Seller 
2、auto-import(自动引入)缺省情况

from子句中别名的应用: 
1、为被查询的类指定别名,使用AS关键字来设定别名(也可省略)。 
2、定义别名的目的是,在HQL语句其他部分通过别名引用该类。 
3、别名命名习惯,建议别名与持久化类名相同。eg:from Seller,Seller别名可为:seller或单字母s。 
4、别名使用最多场景,是在from子句后设置多个持久化类。 
eg:from Seller s,Customer c


检索单实体:

package com.model;


import java.nio.channels.SeekableByteChannel;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.util.HibernateSessionFactory;

public class CustomeriTest {
    private Session session=null;  //会话实例变量

    @Test
    public void testFromClause(){ //测试from字句
        //定义HQL查询语句,查询单实体
        String hql="from Customer as customer";  //注意:Customer是类名,不是表名,要区分大小写,也可写为from com.model.Customer持久化类的全限定名
        Query query=session.createQuery(hql); //定义query对象
        List<Customer> customers=query.list(); //查询

        for (Customer customer : customers) {
            System.out.println("name:"+customer.getName());
        }

    }

    @Before
    public void setUp() throws Exception {
        session=HibernateSessionFactory.getCurrentSession();
    }

    @After
    public void tearDown() throws Exception {
        session.close();
    }



}

控制台: 
一、HQL语句--from(检索对象) 
检索两个有主外键关联的实体:

package com.model;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.util.HibernateSessionFactory;

public class CommodityTest {
    private Session session=null;

    @Test
    public void testFromClause(){  //测试from字句
        String hql="from Commodity"; //查询Commodity及其外键关联的Seller(即两个有关联的实体)

        Query query=session.createQuery(hql);
        List<Commodity> commodities=query.list();

        for (Commodity commodity : commodities) {
            System.out.println("name"+commodity.getName()); //商品名称
            //查询外键关联的Seller
            System.out.println("seller's name:"+commodity.getSeller().getName());//所属商家名称
        }

    }

    @Before
    public void setUp() throws Exception {
        session=HibernateSessionFactory.getCurrentSession();
    }

    @After
    public void tearDown() throws Exception {
        session.close();
    }

}

控制台(部分): 
一、HQL语句--from(检索对象)

 

转自: https://blog.csdn.net/syf1970/article/details/52389910