我找到了解决问题的方法。问题是,当我想在其余的代码中使用新配置时,“因为每笔交易我都打开了一个新会话(如hibernate所建议),但是该会话始终是在hibernate.cfg.xml文件的开头。另外,我还在一个按钮中定义了配置功能。
现在,我更改了函数的位置,并将其放置在HibernateUtil.java中,仅添加了我需要的配置以及以后可能有用的一些配置
public static void SetSessionFactory(String url, String user, String pass) { try { AnnotationConfiguration conf = new AnnotationConfiguration().configure(); // <!-- Database connection settings --> conf.setProperty("hibernate.connection.url", url); conf.setProperty("hibernate.connection.username", user); conf.setProperty("hibernate.connection.password", pass); sessionFactory = conf.buildSessionFactory(); } catch (Throwable ex) { // Log exception! throw new ExceptionInInitializerError(ex); } }
然后,每当我要访问该新连接时,在每次事务开始时,我都调用会话指向同一类HibernateUtil.java。
public Session session = HibernateUtil.getSessionFactory().openSession();
如果不将第一个函数放在此类中,则打开的会话始终是配置文件中默认情况下的那个会话。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)