@注解_subselect
来源:互联网 发布:家用电脑远程监控软件 编辑:程序博客网 时间:2024/05/16 19:50
直接上代码咯
说明:
subselect(可选):它将一个不可变(immutable)并且只读的实体映射到一个数据库的子查询中。当你想用视图代替一张基本表的时候,这是有用的,但最好不要这样做。
若指明的持久化类实际上是一个接口,这也是完全可以接受的。之后你可以用元素 <subclass> 来指定该接口的实际实现类。你可以持久化任何 static(静态的)内部类。你应该使用标准的类名格式来指定类名,比如:Foo$Bar。
package cn.jbit.test2.bean;import java.io.Serializable;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.Table;import org.hibernate.annotations.Subselect;import org.hibernate.annotations.Synchronize;@Entity@Table(name = "test_summary")@Subselect("SELECT i.name AS itemName, MAX(b.amount) AS amountMax, COUNT(*) AS itemCount "+ "FROM test_item i "+ "INNER JOIN test_bid b ON i.item_id = b.id "+ "GROUP BY i.name")@Synchronize( { "test_item", "test_bid" })// tables impactedpublic class Summary implements Serializable {private static final long serialVersionUID = 3647575276389635849L;@Id@Column(name = "itemName")private String itemName;@Column(name = "amountMax")private double amountMax;@Column(name = "itemCount")private Integer itemCount;public Summary() {super();}public Summary(String itemName, double amountMax, Integer itemCount) {super();this.itemName = itemName;this.amountMax = amountMax;this.itemCount = itemCount;}public String getItemName() {return itemName;}public void setItemName(String itemName) {this.itemName = itemName;}public double getAmountMax() {return amountMax;}public void setAmountMax(double amountMax) {this.amountMax = amountMax;}public Integer getItemCount() {return itemCount;}public void setItemCount(Integer itemCount) {this.itemCount = itemCount;}}测试类:
package cn.jbit.test2.test;import java.util.List;import org.hibernate.HibernateException;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction;import cn.jbit.ch04.util.HibernateUtil;import cn.jbit.test2.bean.Summary;public class SummaryTest {@SuppressWarnings("unchecked")public static void add() {Session session = null;Transaction tx = null;try {session = HibernateUtil.getSession();tx = session.beginTransaction();String hql = "from Summary";Query query = session.createQuery(hql);List<Summary> list = query.list();// System.out.println(list.size());for (Summary summary : list) {System.out.println(summary.getItemName() + "\t"+ summary.getAmountMax() + "\t"+ summary.getItemCount());}tx.commit();} catch (HibernateException e) {if (tx.isActive()) {tx.rollback();}e.printStackTrace();}}public static void main(String[] args) {add();}}
1 0
- @注解_subselect
- 注解
- 注解
- 注解
- 注解
- 注解
- 注解
- 注解
- 注解
- 注解
- 注解
- 注解
- 注解
- 注解
- 注解。
- 注解
- 注解
- 注解
- hadoop生态系统
- uva 10716 - Evil Straw Warts Live
- android Notification 的使用
- Windows下SVN命令行工具使用详解(附加TortoiseSVN)
- 匆匆
- @注解_subselect
- 2012蓝桥杯【初赛试题】身份证
- 频编解码之speex-speex编译静态库for iOS 此博文包含图片(2012-08-08 09:43:09)
- C/C++开发者必不可少的15款编译器+IDE
- 第十四章 Spring Bean自动注入(Spring Framework3.1教程)
- u3d 动态加载图片
- poj1061扩展欧几里得
- old 10.10 to new linux
- HTML学习笔记