hibernate hql query and native sql query
这是一篇上班期间整理的文章,参考了相关文章,版权不归本人所有,特此说明,如有侵犯他人,请提出。
Hibernate中有hql查询和原生sql查询,本文整理这两种查询的用法,不涉及游离查询、投影查询等等。
本文需要解决的问题是:怎样将使用本地SQL查询出来的结果映射为值对象的问题?这里就Hibernate中提供的方法做个结论。前提,这里没有使用属性的延迟加载技术。 继续阅读…
这是一篇上班期间整理的文章,参考了相关文章,版权不归本人所有,特此说明,如有侵犯他人,请提出。
Hibernate中有hql查询和原生sql查询,本文整理这两种查询的用法,不涉及游离查询、投影查询等等。
本文需要解决的问题是:怎样将使用本地SQL查询出来的结果映射为值对象的问题?这里就Hibernate中提供的方法做个结论。前提,这里没有使用属性的延迟加载技术。 继续阅读…
查了一天资料,终于知道了如何用hibernate从sqlite数据库读取blob,其实关键还是要看sqlite官方的使用说明,如果了解了sqlite的一些基本特性之后对于如何用hibernate从sqlite数据库读取blob这个问题,解决起来就很容易了。
在hibernate将一个字段映射到数据库中的一个blob或clob类型的数据,必须指定实体字段和表字段的映射关系。但对应sqlite数据库来说,该映射无须那么严格。 继续阅读…
关于Hibernate启动时的配置需要注意的地方?
Hibernate中Hibernate配置文件有三种形式:
1.使用Eclipse IDE自动生成的Hibernate-cfg.xml文件,目录在工程下的classes目录下
调用方式为:
Configuration config = new Configuration().config();
SessionFactory sessionFactory = config.buildSessionFactory();
Session session = sessoinFactory.openSession(); 继续阅读…
要在应用中使用Hibernate,首先要初始化Hibernate的运行环境,使持久化类和数据库受控于Hibernate,才能使用Hibernate提供的接口实现对象和数据库的互操作。
使用了hibernate很长时间,一直都是在使用的过程中,发现项目在启动的时候,系统会预先初始化hibernate的环境,但一直没有仔细研究为什么在项目启动的时候会初始化hibernate以及是如何开始初始化的。仔细看看项目里的web.xml文件,发现项目中有spring的配置文件,spring配置文件中引入了hibernate的配置文件,原来是spring读取了hibernate的配置文件,导致hibernate的初始化!如果项目里就只有hibernate的jar包,web.xml里什么都没有,很显然在项目启动的时候是不会初始化hibernate的,但是当你在页面上第一次调用hibernate的时候,hibernate就会完成所有的初始化工作。
用Seam管理hibernate会话,前提是你要在你的项目中使用Seam和hibernate。 如果你是在Java EE 5环境外使用Seam,你不能依靠容器来为你管理持久化上下文生命周期。 即使在Java EE 5 环境中,你可能有一个很多松耦合组件在会话作用域内相互协作的复杂应用,这种情况下你可能发现在组件间传递持久化上下文既困难又容易出错。
在任何一种情况下,你都需要在你的组件中使用一个 受管持久化上下文(在 JPA中)或者一个 受管会话(Hibernate中)。一个 Seam管理的持久化上下文是在会话上下文中管理一个 EntityManager 实例或者 Session 实例的内置Seam组件。你可以使用 @In 注入它。
如果你装载了一个内建的组件,Seam将会从你的 hibernate.cfg.xml 文件中引导一个 Hibernate SessionFactory:
<persistence :hibernate-session-factory name=”hibernateSessionFactory”/>
如果你想要通过注入得到一个由Seam管理的Hibernate Session,还需要配置一个 managed session。
<persistence :managed-hibernate-session name=”hibernateSessionFactory”
session-factory=”#{hibernateSessionFactory}”/>
当然,在得到Hibernate SessionFactory时,你可以执行一些额外的操作,如hibernate配置文件初始化工作:
<persistence :hibernate-session-factory
name=”hibernateSessionFactory”>
<configuration -initializers>
<value>com.javachen.hibernate.ConfigurationInitializer</value>
</configuration>
</persistence>
缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。
Hibernate的缓存有两种,一种是一级缓存(缓存session操作过的所有对象,属于应用事物级缓存),一种是二级缓存(缓存生成的sql,以及hibernate管理过的部分对象)。 继续阅读…
Recent Comments