实验条件:实验所用的数据库软件为Mysql,数据库store包含user( userID int, userName varchar(45), phone varchar(45))和goods(goodsID int, goodsName varchar(45), userID int)两个表。
实验目的:利用hibernate的动态模型进行多表查询。
项目的结构如下:
1.在没有使用动态模型的时候。要为user和goods两个表分别建立一个po类,并为多表查询的结果建立UserGoods.java这个po类,然后进行查询(此时po包中有User.java,user.hbm.xml,Goods.java,goods.hbm.xml,UserGoods.java):
Configuration configuration = new Configuration().configure();
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
.applySettings(configuration.getProperties()).build();
SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
Session session = sessionFactory.openSession();
<strong>String hql = "select new po.UserGoods(u.userName, u.phone, g.goodsName) from <span style="color:#ff0000;">User u, Goods g</span> where u.userID=g.userID"; </strong>
Query query = session.createQuery(hql);
List<<span style="font-family: Arial, Helvetica, sans-serif; "><strong>UserGoods</strong></span><span style&#