前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >hibernate学习笔记

hibernate学习笔记

作者头像
yawn
发布2018-03-14 10:57:51
5090
发布2018-03-14 10:57:51
举报
文章被收录于专栏:osc同步分享-java技术分享站
代码语言:javascript
复制
  Configuration configuration = new Configuration().configure();
  
  ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build();

  SessionFactory sessionFactory = new MetadataSources( serviceRegistry ).buildMetadata().buildSessionFactory();
  
//  StandardServiceRegistryBuilder registryBuilder = new StandardServiceRegistryBuilder()
//    .applySettings(configuration.getProperties());
//
//  StandardServiceRegistry registry = registryBuilder.build();
//
//  sessionFactory = configuration.buildSessionFactory(registry);
  
  session = sessionFactory.openSession();

  transaction = session.beginTransaction();

1. 加载hibernate配置文件

2. 获取 SessionFactory

3. 获取 Session

其中在获取 SessionFactory 时按照示例程序的代码(注释区域)行不通,在 Stack Overflow 找到了解决办法,最终实现了。

tip:

代码语言:javascript
复制
    User yawn = new User("yawn", "liu1234");
    User yawn2 = yawn;
    
    session.save(yawn);
    session.save(yawn2);

最终保存的结果只有一条记录,yawn 和 yawn2 属于同一实例的不同引用,所以只对应数据库中一个元组。

代码语言:javascript
复制
  User yawn = new User("yawn", "liu1234");
  session.save(yawn);
  
  yawn = new User("yawn2", "liu1234");
  session.save(yawn);

保存结果又两条记录,两次yawn 分别是不同对象的引用。

代码语言:javascript
复制
  User yawn = new User("yawn", "liu1234");
  session.save(yawn);
  
  yawn.setName("yawn2");
  yawn.setPwd("1234yawn");
  session.save(yawn);

保存结果只有一条记录。

    hibernate的学习自今日开始,加油!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档