您的位置:首页 > 其它

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后如果将结果封装。

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hibernate