hibernate之关于1+N的问题
来源:互联网 发布:网络短信发送软件 编辑:程序博客网 时间:2024/06/08 07:12
@Entity@Table(name="t_group")publicclass Group { private Integer id; private String name; private Set<Person> persons=newHashSet<Person>(); @OneToMany public Set<Person> getPersons() { returnpersons; } publicvoid setPersons(Set<Person> persons) { this.persons = persons; } @Id @GeneratedValue public Integer getId() { returnid; } publicvoid setId(Integer id) { this.id = id; } @Column(name="g_name") public String getName() { returnname; } publicvoid setName(String name) { this.name = name; }}
@Entity@Table(name="p_person")publicclass Person { private Integer id; private String name; private Integer age; private Group group; @ManyToOne @JoinColumn(name="group_id") public Group getGroup() { returngroup; } publicvoid setGroup(Group group) { this.group = group; } @Id @GeneratedValue public Integer getId() { returnid; } publicvoid setId(Integer id) { this.id = id; } @Column(name="p_name") public String getName() { returnname; } publicvoid setName(String name) { this.name = name; } @Column(name="p_age") public Integer getAge() { returnage; } publicvoid setAge(Integer age) { this.age = age; }}
现在我们查询Person,看它发送的SQL语句
//我们发现,在查询Person的时候,发送的SQL语句 @Test publicvoid findTest1(){ Session s=sessionFactory.getCurrentSession(); s.beginTransaction(); List<Person> persons=s.createQuery("from Person").list(); for(Person person:persons){ System.out.println(person.getName()+"----"+person.getId()); } s.getTransaction().commit(); }
11:02:13,036 DEBUGSQL:111 - select person0_.id as id1_, person0_.p_age as p2_1_, person0_.group_id as group4_1_, person0_.p_name as p3_1_ from p_person person0_11:02:13,078 DEBUGSQL:111 - select group0_.id as id0_0_, group0_.g_name as g2_0_0_ from t_group group0_ where group0_.id=?11:02:13,096 DEBUGSQL:111 - select group0_.id as id0_0_, group0_.g_name as g2_0_0_ from t_group group0_ where group0_.id=?11:02:13,100 DEBUGSQL:111 - select group0_.id as id0_0_, group0_.g_name as g2_0_0_ from t_group group0_ where group0_.id=?11:02:13,102 DEBUGSQL:111 - select group0_.id as id0_0_, group0_.g_name as g2_0_0_ from t_group group0_ where group0_.id=?11:02:13,103 DEBUGSQL:111 - select group0_.id as id0_0_, group0_.g_name as g2_0_0_ from t_group group0_ where group0_.id=?11:02:13,105 DEBUGSQL:111 - select group0_.id as id0_0_, group0_.g_name as g2_0_0_ from t_group group0_ where group0_.id=?11:02:13,107 DEBUGSQL:111 - select group0_.id as id0_0_, group0_.g_name as g2_0_0_ from t_group group0_ where group0_.id=?11:02:13,110 DEBUGSQL:111 - select group0_.id as id0_0_, group0_.g_name as g2_0_0_ from t_group group0_ where group0_.id=?11:02:13,113 DEBUGSQL:111 - select group0_.id as id0_0_, group0_.g_name as g2_0_0_ from t_group group0_ where group0_.id=?11:02:13,115 DEBUGSQL:111 - select group0_.id as id0_0_, group0_.g_name as g2_0_0_ from t_group group0_ where group0_.id=?张三0----1张三1----2张三2----3张三3----4张三4----5张三5----6张三6----7张三7----8张三8----9张三9----10
@ManyToOne(fetch=FetchType.LAZY)
@Test publicvoid findTest1(){ Session s=sessionFactory.getCurrentSession(); s.beginTransaction();// List<Person>persons=(List<Person>)s.createCriteria(Person.class).list();//解决方法1 List<Person> persons=s.createCriteria(Person.class).list(); // List<Person>persons=s.createQuery("from Person p left join fetch p.groupg").list();//解决方法3 for(Person person:persons){ System.out.println(person.getName()+"----"+person.getId());// System.out.println(person.getGroup().getName()); } s.getTransaction().commit(); }
1 0
- hibernate之关于1+N的问题
- hibernate之1+N问题
- 关于hibernate 1+n问题的一些总结
- Hibernate的1+N问题(N+1)
- Hibernate的N+1问题
- Hibernate的n+1问题
- hibernate 的N + 1问题
- 关于hibernate的n+1查询
- Hibernate n+1问题
- hibernate N+1问题
- hibernate N+1问题
- Hibernate N+1 问题
- hibernate 1+N问题
- Hibernate n+1问题
- hibernate:1+N问题
- Hibernate N+1 问题
- Hibernate n+1问题
- Hibernate N+1 问题
- 目录
- TCP/IP高效编程:改善网络程序的44个技巧 笔记
- 《转》Android数据库之SQLite数据库
- 关于编译型语言函数的调用(三)
- servlet之web.xml文件部分解析(2014年10月31日)
- hibernate之关于1+N的问题
- MySQL unauthenticated user解决办法
- 写在前面
- 用户画像
- 走进小作坊(十九)----商场博弈论的诡计
- C语言中main函数之前可以进行赋值作吗?
- 程序基石系列(十四) 虚析构函数
- hadoop 2 datanode 经常自动挂掉原因
- JDBC学习