对象导航查询: 根据id查询某个客户,再查询这个客户里面所有的联系人
OID查询: 根据id查询某一条记录,返回对象
HQL查询: Query对象,写HQL语句实现查询
QBC查询: Criteria对象
本地SQL查询: SQLQuery对象,使用普通SQL实现查询
实体类的实现
package com.ycom1024.hernate.po;
import java.util.HashSet;
import java.util.Set;
public class Customer {
private Integer id;
private String name;
private String level;
private String source;
private String phone;
private String mobile;
private Set<LinkMan> linkMans = new HashSet<>();
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 String getLevel() {
return level;
}
public void setLevel(String level) {
this.level = level;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public Set<LinkMan> getLinkMans() {
return linkMans;
}
public void setLinkMans(Set<LinkMan> linkMans) {
this.linkMans = linkMans;
}
@Override
public String toString() {
return "Customer [id=" + id + ", name=" + name + ", level=" + level + ", source=" + source + ", phone=" + phone
+ ", mobile=" + mobile + "]";
}
}
package com.ycom1024.hernate.po;
public class LinkMan {
private Integer id;
private String name;
private String gender;
private String phone;
private Customer customer;
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 String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public Customer getCustomer() {
return customer;
}
public void setCustomer(Customer customer) {
this.customer = customer;
}
@Override
public String toString() {
return "LinkMan [id=" + id + ", name=" + name + ", gender=" + gender + ", phone=" + phone + "]";
}
}
对象导航查询
@Test
public void testQuery1() {
SessionFactory sessionFactory = HibernateUtils.getSessionFactory();
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
Customer customer = session.get(Customer.class, 11);
Set<LinkMan> linkMans = customer.getLinkMans();
for (LinkMan linkMan : linkMans) {
System.out.println(linkMan);
}
tx.commit();
session.close();
sessionFactory.close();
}
-----------------------------------------------------------------------------
Hibernate:
select
customer0_.id as id1_0_0_,
customer0_.name as name2_0_0_,
customer0_.level as level3_0_0_,
customer0_.source as source4_0_0_,
customer0_.phone as phone5_0_0_,
customer0_.mobile as mobile6_0_0_
from
t_customer customer0_
where
customer0_.id=?
Hibernate:
select
linkmans0_.fk_limlman_customer as fk_limlm5_1_0_,
linkmans0_.id as id1_1_0_,
linkmans0_.id as id1_1_1_,
linkmans0_.name as name2_1_1_,
linkmans0_.gender as gender3_1_1_,
linkmans0_.phone as phone4_1_1_,
linkmans0_.fk_limlman_customer as fk_limlm5_1_1_
from
t_linkman linkmans0_
where
linkmans0_.fk_limlman_customer=?
LinkMan [id=23, name=M3, gender=null, phone=null]
LinkMan [id=22, name=M1, gender=male, phone=123456]
OID查询
@Test
public void testQuery2() {
SessionFactory sessionFactory = HibernateUtils.getSessionFactory();
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
Customer customer = session.get(Customer.class, 11);
System.out.println(customer);
tx.commit();
session.close();
sessionFactory.close();
}
-----------------------------------------------------------------------------
Hibernate:
select
customer0_.id as id1_0_0_,
customer0_.name as name2_0_0_,
customer0_.level as level3_0_0_,
customer0_.source as source4_0_0_,
customer0_.phone as phone5_0_0_,
customer0_.mobile as mobile6_0_0_
from
t_customer customer0_
where
customer0_.id=?
Customer [id=11, name=AAAAA, level=Vip, source=