hibernate——HQL(二)简单的连接查询、隐式连接、显示连接
来源:互联网 发布:驱动精灵 linux版本 编辑:程序博客网 时间:2024/05/02 17:49
hibernate——HQL(二)简单的连接查询、隐式连接、显示连接
package com.xueyoucto.xueyou;import javax.persistence.*;/** * Created by Administrator on 2016/6/30. */enum Level{ 初级,中级,高级}@Entity@Table(name = "h5_teacher")public class Teacher { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer tid; private String name; @Enumerated(EnumType.ORDINAL) private Level level; private int age; public Integer getTid() { return tid; } public void setTid(Integer tid) { this.tid = tid; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Level getLevel() { return level; } public void setLevel(Level level) { this.level = level; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }}
package com.xueyoucto.xueyou;import org.hibernate.annotations.*;import org.hibernate.annotations.CascadeType;import javax.persistence.*;import javax.persistence.Entity;import javax.persistence.Table;@Entity@Table(name = "h5_user")public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; private String name; private Integer age; private String email; @ManyToOne(targetEntity = Teacher.class) @JoinColumn(name = "tid",nullable = false) @Cascade(CascadeType.ALL) private Teacher teacher; public Teacher getTeacher() { return teacher; } public void setTeacher(Teacher teacher) { this.teacher = teacher; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; }}
package com.xueyoucto.xueyou;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import com.xueyoucto.util.HibernateUtil;import java.util.List;/** * Hello world! * */public class App{ public static void main( String[] args ) { System.out.println( "Hello World!" ); SessionFactory sf = HibernateUtil.getSessionFactory(); Session session = sf.openSession(); Transaction tx = session.beginTransaction(); /*Teacher t = new Teacher(); t.setName("王老师"); t.setAge(35); t.setLevel(Level.高级); session.persist(t);*/ /* Teacher t = (Teacher)session.load(Teacher.class,2); User u = new User(); u.setName("小明4"); u.setAge(13); u.setEmail("777@qq.com"); u.setTeacher(t); session.save(u);*/ List userList = session.createQuery("select distinct u from User u where u.teacher.name = ?1") .setParameter("1","王老师") .list(); for(Object ele : userList){ User u = (User)ele; System.out.println(u.getId() + "\t" + u.getName()); } tx.commit(); session.close(); sf.close(); }}
数据库中表:
h5_teacher
h5_user
运行结果:
上面是进行的隐式连接,还有一种显示连接如下:
List userList = session.createQuery("select distinct u from User u inner join u.teacher t where t.name = ?1") .setParameter("1","王老师") .list(); for(Object ele : userList){ User u = (User)ele; System.out.println(u.getId() + "\t" + u.getName()); }
0 0
- hibernate——HQL(二)简单的连接查询、隐式连接、显示连接
- Hibernate HQL 左连接 查询 两张表
- hibernate自连接查询hql语句
- hibernate关于hql的左外连接查询
- HQL (九) 连接查询
- HQL 连接查询
- HQL连接查询
- HQL连接查询【重要】
- Hql连接查询
- Hibernate的连接查询
- hibernate的连接查询
- hibernate的连接查询
- Hibernate-HQL查询(2)子查询、连接查询
- 【Hibernate步步为营】--hql连接查询及外置命名查询
- Hibernate HelloWorld-12 HQL连接
- 在hibernate中hql语句使用连接查询
- hql 多表连接查询
- HQL查询&连接池&二级缓存
- LeetCode:Top K Frequent Elements
- 大学《数据库原理与技术》复习题(一)
- leetcode 367 Valid Perfect Square
- JQ双击表格修改
- 0623第七讲拷贝构造函数
- hibernate——HQL(二)简单的连接查询、隐式连接、显示连接
- poI在ssm中的例子
- 在O(1)时间内删除链表结点
- FMDB数据库简单使用
- struts2利用拦截器解决重复提交问题
- 事务使用方式
- ViewPager实现页卡的最新方法--简洁的TabLayout(AndroidSupportDesign)
- 【Effective C++读书笔记】篇五(条款10~条款12)
- C++ 虚析构函数