您的位置:首页 > 其它

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 在数据表中没有对应的记录, 则抛出异常
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  实用方法 hibernate4