栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Hibernate状态下进行乐观锁定

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Hibernate状态下进行乐观锁定

我使用了Hibernate批注,这是我的乐观锁定的实现

@Entitypublic class MyObject {    @Id    @GeneratedValue(strategy = GenerationType.AUTO)    private Long id;    private String data;    @Version    private Integer version; // this is version field}

这是工作示例

// Entity class with version field@Entitypublic class Ent1 implements Serializable {    private static final long serialVersionUID = -5580880562659281420L;    @Id    Integer a1;    Integer a2;    @Version    private Integer version;}

以及一些向数据库添加一个元素的代码

        session = HibernateHelper.getSessionFactory().openSession();        transaction = session.beginTransaction();        Ent1 entity = new Ent1();        entity.setA1(new Integer(0));        entity.setA2(new Integer(1));        session.save(entity);        transaction.commit();        // get saved object and modify it        transaction = session.beginTransaction();        List<Ent1> list = (List<Ent1>)session.createQuery("FROM Ent1 WHERe a1 = 0").list();        Ent1 ent = list.get(0);        ent.setA2(new Integer(1000));        session.save(ent);        transaction.commit();

创建后,数据库中的新元素具有版本0。修改后-版本1。

HibernateHelper.java

import org.hibernate.SessionFactory;import org.hibernate.cfg.AnnotationConfiguration;public class HibernateHelper {    private static final SessionFactory sessionFactory;    static {        try { sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();        } catch (Throwable ex) { System.err.println("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex);        }    }    public static SessionFactory getSessionFactory() {        return sessionFactory;    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/467014.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号