hibernate命名查询
2017-10-10 19:13
281 查看
JavaBean如下:
@Entity
@Table(name="t_customer")
@SqlResultSetMapping(name="res",entities={@EntityResult(entityClass=Customer.class,fields={
@FieldResult(name="cid",column="cid"),@FieldResult(name="name",column="name")})})
@NamedNativeQuery(name="ssql",query="select * from t_customer",resultSetMapping="res")
public class Customer {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer cid;
@Type(type="string")
private String name;
@OneToMany(targetEntity=Order.class, mappedBy="customer")
private Set<Order> orders = new HashSet<>();
public Integer getCid() {
return cid;
}
public void setCid(Integer cid) {
this.cid = cid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Set<Order> getOrders() {
return orders;
}
public void setOrders(Set<Order> orders) {
this.orders = orders;
}
@Override
public String toString() {
return "Customer [cid=" + cid + ", name=" + name + "]";
}
测试代码如下:
@Test
public void test2(){
Session session = HibernateUtils.openSession();
session.beginTransaction();
Query query = session.getNamedQuery("ssql");
System.out.println(query.list());
session.getTransaction().commit();
session.close();
}
结果:[Customer [cid=1, name=张三], Customer [cid=2, name=张一一], Customer [cid=3, name=张三丰]]
红色代码一定要配置,否则产生异常
出现问题的原因:是hibernate不知道执行select * from t_customer后如果将结果封装。
}
@Entity
@Table(name="t_customer")
@SqlResultSetMapping(name="res",entities={@EntityResult(entityClass=Customer.class,fields={
@FieldResult(name="cid",column="cid"),@FieldResult(name="name",column="name")})})
@NamedNativeQuery(name="ssql",query="select * from t_customer",resultSetMapping="res")
public class Customer {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer cid;
@Type(type="string")
private String name;
@OneToMany(targetEntity=Order.class, mappedBy="customer")
private Set<Order> orders = new HashSet<>();
public Integer getCid() {
return cid;
}
public void setCid(Integer cid) {
this.cid = cid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Set<Order> getOrders() {
return orders;
}
public void setOrders(Set<Order> orders) {
this.orders = orders;
}
@Override
public String toString() {
return "Customer [cid=" + cid + ", name=" + name + "]";
}
测试代码如下:
@Test
public void test2(){
Session session = HibernateUtils.openSession();
session.beginTransaction();
Query query = session.getNamedQuery("ssql");
System.out.println(query.list());
session.getTransaction().commit();
session.close();
}
结果:[Customer [cid=1, name=张三], Customer [cid=2, name=张一一], Customer [cid=3, name=张三丰]]
红色代码一定要配置,否则产生异常
出现问题的原因:是hibernate不知道执行select * from t_customer后如果将结果封装。
}
相关文章推荐
- hibernate系列十六:分组查询,子查询,原生sql查询,命名查询
- Hibernate(二)HQL&SQL参数绑定、投影和分页以及命名查询
- Hibernate命名参数和Query的分页查询
- Hibernate-命名SQL查询
- 使用Hibernate命名查询
- Hibernate 命名查询NamedQuery 3
- hibernate命名查询的实现
- Hibernate 命名查询NamedQuery
- Hibernate(二)HQL&SQL参数绑定、投影和分页以及命名查询
- Hibernate_查询_HQL详解(三)_命名的查询、更新与删除的HQL语法
- Hibernate注解的使用(命名查询 本地查询)
- hibernate 命名查询
- Hibernate命名查询
- Hibernate的命名查询(NamedQuery)
- Hibernate(十三)命名查询-批量处理和调用存储过程
- Hibernate学习32 -- Hibernate查询语言(HQL)6 -- 外置命名查询
- hibernate 命名查询
- Hibernate基本查询下篇:Hibernate聚合函数、分组查询及命名查询 5
- Hibernate-Criteria查询(3)DetachedCriteria构造查询条件、命名查询、原生SQL、调用存储过程(使用JDBC)
- getHibernateTemplate()实例中,命名查询SQL语句的方法