hibernate4之实用方法(六)
2016-02-19 00:42
387 查看
@Before public void init(){ Configuration configuration = new Configuration().configure(); ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()) .buildServiceRegistry(); sessionFactory = configuration.buildSessionFactory(serviceRegistry); session = sessionFactory.openSession(); transaction = session.beginTransaction(); } @After public void destroy(){ transaction.commit(); session.close(); sessionFactory.close(); } @Test public void test(){ //session.测试以下方法 如: User entity= new User("BBBB"); session.save(entity); }-------------------- 基本检索、增加、修改、删除操作 --------------------
(1) 根据主键获取实体。如果没有相应的实体,返回 null。
get(entityClass, id);
(2)根据主键获取实体。如果没有相应的实体,抛出异常。
load(entityClass, id);
1. 执行 get 方法: 会立即加载对象.
执行 load 方法, 若不适用该对象, 则不会立即执行查询操作, 而返回一个代理对象
get 是 立即检索, load 是延迟检索.
2. load 方法可能会抛出 LazyInitializationException 异常
3. 若数据表中没有对应的记录, Session 也没有被关闭.
get 返回 null
load 若不使用该对象的任何属性, 没问题; 若需要初始化了, 抛出异常.
(3)更新实体。
update(entity);
(4)存储实体到数据库。
save(entity);
在调用 save 方法之前, 若对象已经有 id 了, 在 flush 缓存时会发送一条 INSERT 语句且 id 是无效的
(5)存储实体到数据库。persist(entity);在调用 persist 方法之前, 若对象已经有 id 了, 则不会执行 INSERT, 而抛出异常(6)增加或更新实体。
saveOrUpdate(entity);
(7) 删除指定的实体。
delete(entity);
若 entity 在数据表中没有对应的记录, 则抛出异常
相关文章推荐
- javascript实用方法总结
- SpringMVC+Spring3+Hibernate4
- (Hibernate3+)HQL转SQL
- hibernate4 出了 beta3
- No Session found for current thread
- Hibernate 4 视频 教程
- Hibernate4之原理浅析
- Hibernate4之映射基本数据类型
- Hibernate4之JPA规范配置详解
- Hibernate4之配置详解
- SSH整合(Struts2.3.7 + Spring3.2.0 + Hibernate4.1.9)
- java.lang.UnsupportedOperationException: The application must supply JDBC connections
- spring4.x + hibernate4.x 配置详解
- Hibernate4 net.sf.ehcache.Ehcache.getCacheConfiguration错误
- ResultSet may only be accessed in a forward direction Hibernate4异常解决方案
- jbpm4 整合SSH2 兼容 hibernate4
- hibernate初学之初解篇一
- Spring3 Hibernate4 AopConfigException CGLIB2 is not available
- Spring3.x_Struts2.x_Hibernate4.x整合笔记
- springMVC3.2+Hibernate4+freemarker入门简单小例子,适合初学者