hibernate 4.3.7.Final学习

异常:

[Solved] HibernateException: Access to DialectResolutionInfo cannot be null when ‘hibernate...

源码:

public SessionFactory buildSessionFactory() throws HibernateException {
		Environment.verifyProperties( properties );
		ConfigurationHelper.resolvePlaceHolders( properties );
		final ServiceRegistry serviceRegistry =  new StandardServiceRegistryBuilder()
				.applySettings( properties )
				.build();
		setSessionFactoryObserver(
				new SessionFactoryObserver() {
					@Override
					public void sessionFactoryCreated(SessionFactory factory) {
					}

					@Override
					public void sessionFactoryClosed(SessionFactory factory) {
						( (StandardServiceRegistryImpl) serviceRegistry ).destroy();
					}
				}
		);
		return buildSessionFactory( serviceRegistry );
	}

我获取sessionFactory的方式:

package util;

import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;

/**
 * @author guozhenzhen
 * 
 */
public class HibernateUtil {

	private static final SessionFactory sf = buildHibernateSessionFactory();

	private static SessionFactory buildHibernateSessionFactory() {
		Configuration cfg = new Configuration().configure();
		ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
				.build();
		return cfg.buildSessionFactory(serviceRegistry);
	}

	public static SessionFactory getSessionFactory() {
		return sf;
	}

}

可以看得出来是少了一个applySettings方法,把属性都设置进去。

修改如下以后,hibernate可以正常工作了:

package util;

import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;

/**
 * @author guozhenzhen
 * 
 */
public class HibernateUtil {

	private static final SessionFactory sf = buildHibernateSessionFactory();

	private static SessionFactory buildHibernateSessionFactory() {
		Configuration cfg = new Configuration().configure();
		ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
				.applySettings(cfg.getProperties()).build();
		return cfg.buildSessionFactory(serviceRegistry);
	}

	public static SessionFactory getSessionFactory() {
		return sf;
	}

}

继续运行hibernate小例子:

Session session = HibernateUtil.getSessionFactory().getCurrentSession();

出现异常:No CurrentSessionContext configured!

时间: 2024-11-07 18:22:09

hibernate 4.3.7.Final学习的相关文章

cocos2dx3.2 绘图方法小改动之 C++ final学习

今天用cocos2dx 3.2版本学习绘图功能, 于是我重载Node 的draw方法,发现报错, 点击方法进入到Node下 发现draw()方法后面多了一个 final. 下面我简单讲解一个下final的用途 1 final类: final类不能被继承,因此final类的成员方法没有机会被覆盖,默认都是final的.在设计 类的时候,如果这个类不需要有子类,类的实现细节不允许改变,并且确认这个类不会被 扩展,那么就设计为final类.final方法不可以被子类方法覆盖,但可以被继承. 2 fin

Hibernate的核心API ---- 入门学习

叙:学习hibernate是必不可少的要了解其核心的API,下面电虫就核心API进行记录学习: Hibernate核心API Hibernate核心API有configuration.SessonFactory.Session.Transaction等,在Session中有增删改查等小地API,下面进行详细学习: 学习要有目标有方向,所以从一段代码中从上到下的进行研读不失为一种高效率的学习方法,学习模板代码如下所示: 1 package com.java.hibernate.demo1; 2 3

Hibernate 官网文档学习记录

这篇博客主要记录看官方文档时,学习到的要点内容 1.关于XXX.hbm.xml的配置 1)property元素中的type属性值不是java类型也不是sql type类型,是hibernate自己的映射类型.该属性值可以省略,hibernate会在启动的时候通过反射自动的将java类型和sql type类型匹配起来,但有时候会得不到期望的类型,比如java 的util包下的Date类型不知道是转为sql type中的data,time还是timeStamp类型.如果希望启动程序的时候效率高些,建

cocos2dx3.2 画图方法小修改之 C++ final学习

今天用cocos2dx 3.2版本号学习画图功能, 于是我重载Node 的draw方法.发现报错, watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamhvbmxpZ2h0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" > 点击方法进入到Node下 发现draw()方法后面多了一个 final. 以下我简单解说一个下final的用途 1 fin

Hibernate初探之一对多映射 继续学习

实现单向一对多: 1)在one方的实体中添加保存many方的集合 2)在one方的配置文件中添加<one-to-many>配置 实现单向多对一: 1)在many方的实体中添加one方的引用 2)在many方的配置文件中添加<many-to-one>配置 常用属性: cascade:设置级联关系 [all:对所有操作进行级联操作 save-update:执行保存和更新操作时进行级联操作 delete:执行删除操作时进行级联操作 none:对所有操作不进行级联操作] inverse:设

hibernate映射学习(一)

今天这篇博客将会主要学习hibernate关于实体类和表格中的映射详细学习.首先看下"常用主键的生成策略" hibernate常用主键生成策略 在hibernate中,每个主键必须定义相应的主键生成策略,它用来为持久化类实例生成唯一的标识. 1.assigned 在hibernate中,如果不想使用hibernate的主键生成策略,那么此时就需要自己指定主键,此时的主键生成策略,就需要使用assigned. 在使用assigned的时候,必须手动指定id,比如我连续两次执行如下代码:

Rhythmk 学习 Hibernate 04 - Hibernate 辅助工具 之 JBoos Tool

1.安装JBoos Tool Help -> Install new Software 然后添加: http://download.jboss.org/jbosstools/updates/development http://download.jboss.org/jbosstools/updates/stable/ 稍等一刻,选择 Hibernate tool 下一步 ,完成后重启Eclipse即可. 2.项目配置文件生成: 2.1 新建一项目,项目右键生成相关配置 然后如图: 2.2 此处需

[原创]java WEB学习笔记95:Hibernate 目录

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

hibernate学习(查询)

数据查询是hibernate的一个亮点,hibernate为程序猿提供了多种的查询方式,分为以下三种: 1.hibernate语言查询,也就是我们今天需要说的hql查询,这种查询是完全面向对象的方式来查询,将查询语句封装为对象来进行操作.符合面向对象的思维来维护数据库. 2.hibernate标准化查询:(criteria query)将查询语句封装成对象进行操作. 3.原声sql查询:直接使用标准sql语言来进行查询. hql查询所有 在学习hql查询之前,我先插入一些记录到userinfo表