关于Hibernate注解的使用(命名查询 本地查询)

配置Weapon.java,代码如下:
package com.hibernate.annotations.entity; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EntityResult; import javax.persistence.FieldResult; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.NamedNativeQuery; import javax.persistence.NamedQuery; import javax.persistence.SequenceGenerator; import javax.persistence.SqlResultSetMapping; import javax.persistence.Table; @Entity @Table(name = "WEAPON") //通过注解的方式使用命名查询 @NamedQuery(name = "namedQuery",query="from Weapon where id < :id") //通过注解的方式使用本地查询 @SqlResultSetMapping(name = "all_fields",entities={ @EntityResult(entityClass= com.hibernate.annotations.entity.Weapon.class, fields={ @FieldResult(name = "id",column="ID"), @FieldResult(name = "name",column="NAME"), } ) } ) @NamedNativeQuery(name = "nameeNativeQuery", query = "select * from WEAPON where id < :id", resultSetMapping="all_fields") public class Weapon { @SequenceGenerator(name = "seq",allocationSize = 1,initialValue = 1,sequenceName = "seq_weapon_pk") @Id @Column(name = "ID") @GeneratedValue(strategy=GenerationType.SEQUENCE,generator = "seq") private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
关于注解的测试举例,TestAnnotations.java,代码如下:
package com.hibernate.annotations.entity; import java.util.Iterator; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.AnnotationConfiguration; public class TestAnnotations { public static AnnotationConfiguration config = new AnnotationConfiguration(); public static SessionFactory sessionFactory ; public static String config_file = "/hibernate.cfg.xml"; public static void main(String[] args) { // annotationTest1(); // annotationTest2(); annotationTest3(); } public static void annotationTest1(){ //获得配置文件信息 config.configure(config_file); //创建session工厂 sessionFactory = config.buildSessionFactory(); //创建Session对象(注意:正常开发环境下,应该优先当前进程中的session) Session session = sessionFactory.openSession(); //开启事务 Transaction tran = session.beginTransaction(); Weapon weapon = new Weapon(); weapon.setName("屠鹰刀"); session.save(weapon); tran.commit(); session.close(); } //使用命名查询进行数据查询 public static void annotationTest2(){ //获得配置文件信息 config.configure(config_file); //创建session工厂 sessionFactory = config.buildSessionFactory(); //创建Session对象(注意:正常开发环境下,应该优先当前进程中的session) Session session = sessionFactory.openSession(); Query query = session.getNamedQuery("namedQuery"); query.setParameter("id", 100); List<Weapon> list = query.list(); Iterator<Weapon> it = list.iterator(); while(it.hasNext()){ Weapon w = it.next(); System.out.println(w.getId() + "\t" + w.getName()); } session.close(); } //使用本地查询进行数据查询 public static void annotationTest3(){ //获得配置文件信息 config.configure(config_file); //创建session工厂 sessionFactory = config.buildSessionFactory(); //创建Session对象(注意:正常开发环境下,应该优先当前进程中的session) Session session = sessionFactory.openSession(); Query query = session.getNamedQuery("nameeNativeQuery"); query.setParameter("id", 100); List<Weapon> list = query.list(); Iterator<Weapon> it = list.iterator(); while(it.hasNext()){ Weapon w = it.next(); System.out.println(w.getId() + "\t" + w.getName()); } session.close(); } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值