Hibernate笔记
文章平均质量分 52
nokiaisacat
这个作者很懒,什么都没留下…
展开
-
hibernate学习笔记1(javax.persistence.Cacheable)
Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/CacheableCaused by: java.lang.ClassNotFoundException: javax.persistence.Cacheable错误原因,javax.persistence.Cacheable 是 JPA 2.0原创 2010-05-07 13:05:00 · 5905 阅读 · 14 评论 -
hibernate笔记2(transaction.factory_class)
org.hibernate.TransactionException: Could not find UserTransaction in JNDI [java:comp/UserTransaction]Caused by: javax.naming.NoInitialContextException: Need to specify class name in environment or sy原创 2010-05-07 18:24:00 · 3121 阅读 · 0 评论 -
hibernate笔记3sequence默认为50的倍数
@SequenceGenerator( name = "privileges_id", sequenceName = "user_privileges_id",)如果像上面的方式定义SequenceGenerator则插入到数据库中的sequence的nextval每次都是50的倍数。解决方案:以如下方式修改SequenceGenerator@SequenceGenerator( n原创 2010-05-07 18:27:00 · 918 阅读 · 0 评论 -
hibernate笔记5(getCurrentSession)
org.hibernate.HibernateException: No CurrentSessionContext configured!造成以上问题原因:在hibernate.cfg.xml中没有配置hibernate.current_session_context_class这个property可以配置如下一些值:jta | thread | managed | custom.Class原创 2010-05-07 18:29:00 · 487 阅读 · 0 评论 -
hibernate c3p0 连接无法释放 阻塞数据库操作
最近写的一个项目,发现每次启动tomcat进行几个数据库操作后就会卡住,重启tomcat又可以继续用,几个数据库操作后继续不可用。在mysql中查询show processlist,发现这个项目的数据库有很多process在Sleep状态。关闭tomcat,重启mysql,让数据库中的进程恢复0。启动tomcat,这时候看到这个项目的数据库有5个连接,这是因为hibernate.cfg原创 2016-04-23 19:22:03 · 4587 阅读 · 0 评论 -
注解方式配置SessionFactory的注入
之前程序中的SessionFactory都是通过hibernate的方式获取的:Configuration().configure("hibernate.cfg.xml").buildSessionFactory();因为一些问题想要改成Spring注入的方式,但是我的程序都是使用的注解的方式注入bean,为了保持一致性还是用@Bean来配置SessionFactory首先原创 2016-04-26 23:05:41 · 3806 阅读 · 0 评论 -
Hibernate Session cache
Hibernate 的缓存有三种,Session级别的缓存,也可以说是事务级别。对当前事务中的对象进行缓存,不同的事务有不同的缓存。查询缓存,查询缓存是所有事务共享的,是为了减少查询的数据库操作,以查询语句和参数值为key。Second level cache, 二级缓存,为了在事务直接共享对象。比如事务1已经从数据库获得对象A,事务2用这个ID再去查找直接从二级缓存返回。Sess原创 2016-05-26 16:33:00 · 414 阅读 · 0 评论 -
Hibernate lazy load
项目中使用了很多many-to-one的映射,刚开始的时候不加lazy=false会报这个错误 could not initialize proxy - no Session加上lazy=false确实没有报错了,但是后来做性能测试的时候确确实实为此感到羞耻,因为每次都会有很多无用的sql执行。下定决心去掉lazy=false,Spring提供了OpenSessionInViewI原创 2016-05-04 23:04:59 · 897 阅读 · 0 评论 -
一个因为SQL join引发的内存泄露
最近公司的一个系统频繁的发生内存泄露,把server上的dump文件下载下来打开却是损坏的。用Jconsle监控server发现,线程的数量和内存的使用率都在不断上升。服务器重启后还好,运行一天之后就会发现线程数量很多,内存使用率很高,监控GC的日志发现full GC一直被调用,然后空间不能得到释放,主要是metaspace。然后这个版本和上个版本之间唯一的区别就是几个native sql。在原创 2016-08-03 15:32:23 · 1173 阅读 · 0 评论