A org.hibernate.SessionFactory is used to obtain org.hibernate.Session instances. A org.hibernate.Session represents a single-threaded unit of work. The org.hibernate.SessionFactory is a thread-safe global object that is instantiated once.
If you give the org.hibernate.SessionFactory a name in your configuration, Hibernate will try to bind it to JNDI under that name after it has been built. Another, better option is to use a JMX deployment and let the JMX-capable container instantiate and bind a HibernateService to JNDI. Such advanced options are discussed later.
1.通过用户类库来组织框架的Jar包集体导入,方便管理
2.各个版本的的jar下载地址:http://sourceforge.net/projects/hibernate/files/
3.hibernate-annotations-3.4.0.GA下载地址:
http://www.brothersoft.com/hibernate-annotations-download-69011.html
当要使用annotation:
hibernate-annotations.jar
hibernate-commons-annotations.jar
ejb3-persistence.jar
4.在Hibernate 2.x里,多数情况下表示映射关系的元数据保存在XML文本文件中. 还有一种方式就是Xdoclet,它可以在编译时利用Javadoc中的源码注释信息来进行预处理. 现在新的JDK标准(JDK1.5以上)也支持类似的注解功能,但相比之下很多工具对此提供了更强大更好用的支持. 以IntelliJ IDEA和Eclipse为例,这些IDE工具为JDK 5.0注解功能提供了自动完成和语法高亮功能. 注解被直接编译到字节码里,并 在运行时(对于Hibernate来讲就是启动的时候)通过反射读取这些注解, 因此外部XML文件就不再需要了.
5.为了简化从hbm文件到注解的迁移过程, 配置机制将自动检测在注解和hbm文件中重复的映射。 默认情况下hbm文件中的声明比类中的注解元数据具有更高的优先级。 这种优先级的设定是以类为单位的。 你也可以通过hibernate.mapping.precedence修改这种优先级。 默认的值是hbm, class, 如果改为class,hbm,当发生冲突的时候,类中的注解将比hbm文件具有更高的优先级.
6.JPA是一组接口规范,欲"统一天下",此规范,hibernate的作者也参与
7.slf4j,萨拉风4j,哈哈,读法有趣,slf是一组接口规范,又是规范,又是标准,厉害
8.SessionFactory-线程安全,Session-线程不安全
9.当<gererator的class为native时,会根据指定的dialect来生成主键,毕竟不同数据库有不同实现方式,identity也符合mysql的方式
10.当<gererator的class为assigned时,意味着我们需要自己写代码类生成键值(也就是业务主键)
11.hibernate把JDBC的checked exception转换成unchecked exception,因此上层代码操作起来很清爽
12.hibernate根据dialect来生成sql,所以dialect设置很重要
13.当要通过反射来实例化一个类的时候,记得要有无参构造函数,ibatis的时候,曾经碰到过这个问题,现在印象深刻了
14.<property name="current_session_context_class">thread</property>
只能通过getCurrentSession()获得Session,这样的session适合在多线程中解决数据共享的问题,不容易出共享混乱
15.
get()-->一级缓存-->db-->null;
load()-->一级缓存--->2级缓存-->db-->exception
本文详细介绍了Hibernate框架的基本概念,包括SessionFactory和Session的作用及线程安全性,如何通过注解进行ORM映射,以及Hibernate如何处理JDBC异常等。同时,文中还讨论了Hibernate与JNDI、JMX的集成方式,并提到了Hibernate支持的多种主键生成策略。
4万+

被折叠的 条评论
为什么被折叠?



