标签: hibernate-session

java.lang.ClassNotFoundException:javax.persistence.NamedStoredProcedureQuery - Hibernate错误

以上异常一直在抛出创建一个hibernate会话工厂.

在此输入图像描述

在应用程序li​​b文件夹中有hibernate-jpa-2.1-api和javax.persistence.2.1.0.我可以在两个jar中看到NamedStoredProcedureQuery类.但我得到classnotfoundexception的运行时错误.有什么建议吗?

java hibernate sessionfactory hibernate-session

3
推荐指数
1
解决办法
7881
查看次数

Hibernate Session 和线程安全

我试图理解“Hibernate 会话不是线程安全的”的含义。我已经知道的(如果我错了请纠正):

  1. 非JTA环境中的会话保存在Thread Local中。所以它绑定到当前线程。
  2. 在新线程中调用 getCurrentSession() 会将新会话与其自己的本地线程关联起来。
  3. 假设我们在 2 个线程 (T1,T2) 之间共享一个实体,在 T1 中加载并在 T2 中使用,我们可能会遇到延迟加载等问题,因为 T1 和 T2 中的会话不同。

这解释了在不同会话之间共享实体时可能会出现的问题。

我无法理解的是,当 Session 在 2 个或更多线程之间共享时可能会出现问题。我知道 Session 中的方法不是线程安全的,可能会导致竞争条件等,但不清楚如何?如果有人可以用示例进行解释或列出一个或多个场景来澄清,我将不胜感激。

提前致谢

java multithreading hibernate race-condition hibernate-session

3
推荐指数
1
解决办法
5508
查看次数

Hibernate Session Factory

在我们的Web应用程序中,我们有一个HibernateSessionFactory类,即打开和关闭连接.一切都很好,但是当我们更新数据库中的数据时,它在我们的应用程序中不会改变.不幸的是,我们从数据库中看到旧数据.我该如何解决?

public class HibernateSessionFactory {

    private static final ThreadLocal threadLocal = new ThreadLocal();
    private static org.hibernate.SessionFactory sessionFactory;

    private static Configuration configuration = new Configuration();
    private static ServiceRegistry serviceRegistry; 

    private static final Logger log = Logger.getLogger(HibernateSessionFactory.class);

    static {
        try {
            configuration.configure();
            serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties())
            . buildServiceRegistry();
            sessionFactory = configuration.buildSessionFactory(serviceRegistry);
        } catch (Exception e) {
            log.error("Error Creating SessionFactory",e);

        }
    }

    private HibernateSessionFactory() {
    }

    public static Session getSession() throws HibernateException {
        Session session = (Session) threadLocal.get(); 
        if (session == …
Run Code Online (Sandbox Code Playgroud)

java mysql hibernate hibernate-session java-ee

2
推荐指数
1
解决办法
2万
查看次数

为什么在hibernate中不推荐使用session.refresh(Object,LockMode.UPGRADE)?

我的要求:

我使用Quartz cron进行触发,许多触发器在同一行上运行但基于不同的列.所以当触发器需要更新其相关列时.触发第一次刷新(Session.refresh(object))对象属于它(从触发器开始时选择对象)从数据库,然后UPGRADE LOCK在行级别.如果获得锁定成功则更新列并用于session.update(object)在DB中更新.并释放锁.

session.refresh(Object, LockMode.UPGRADE)使用hibernate避免脏更新的替代方法和有效方法是什么?

为何在hibernate中弃用?

java hibernate hibernate-session

-1
推荐指数
1
解决办法
1215
查看次数