
数据库-持久层
文章平均质量分 70
点火三周
热爱编程,老码团队成员,《老码说编程之玩转Swift江湖》作者。elasitcsearch认证工程师,elasitcsearch中文社区成都负责人
展开
-
Could not enlist in transaction on entering meta-aware object
不知道大家有没有遇到过类似的问题,hibernete没法open connectionCaused by: javax.ejb.EJBException: Caused by: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Could not open connection原创 2016-06-07 13:03:37 · 3502 阅读 · 0 评论 -
Elasticsearch之基本操作
摘要:本文简单介绍了elasticsearch的HTTP API中的插入、删除、更新、查找、搜索功能。elasticsearch是一个是开源的(Apache2协议),分布式的,RESTful的,构建在Apache Lucene之上的的搜索引擎。它有很多特点例如Schema Free,Document Oriented。它是#nosql的,基于JSON,同转载 2017-02-22 14:33:10 · 2268 阅读 · 0 评论 -
JPA与Hibernate的关系
1.JPA JPA全称: Java Persistence API JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 JPA的出现? JPA的出现有两个原因: 其一,简化现有Java EE和Java SE应用的对象持久化的开发工作; 其二,Sun希望整合对ORM技术,实现持久化领域的统一。 JPA转载 2016-11-21 15:37:27 · 1359 阅读 · 0 评论 -
JDBC和数据库事务详解(一)
现在还在写JDBC事务的文章,我觉得我一定是相当的Out了,现在主流的java应用,框架都是分布式的,各种分布式的事务,或者容器事务才是需要学习的重点,在这里谈JDBC确实有点不合时宜,但任何的java 开发人员,如果不能够深入的理解数据库的事务,那在做数据处理的方面就一定是有所欠缺的,另外确实很少有文章能够谈到JDBC和数据库事务的精髓,希望这里能够让你深度的了解到什么是JDBC的事务以及它和数据原创 2016-12-10 16:10:22 · 1690 阅读 · 0 评论 -
分布式事务简谈
分布式事务起源分布式事务工作机制2段提交 2PC原创 2016-11-29 11:28:41 · 1313 阅读 · 0 评论 -
Locking and Concurrency in Java Persistence 2.0
The Java Persistence API (informally referred to as JPA) provides a plain old Java object (POJO)-based persistence model for Java EE and Java SE applications. It handles the details of how relationa转载 2016-08-08 11:28:51 · 1086 阅读 · 0 评论 -
JPA2.1 中三个提升应用性能的新功能
经常在网上看到开发者们抱怨 JPA 性能低下的帖子或文章,但如果仔细查看这些性能问题,常会发现导致问题的根本原因大致包括以下几个:使用过多的 SQL 查询从数据库中获取所需的实体信息,即我们常说的n+1查询问题逐个更新实体,而不是使用单条语句进行更新使用 Java 应用程序而非数据库进行大量数据处理JPA提供了处理这类问题的方法,并给 J翻译 2016-08-16 22:03:09 · 1843 阅读 · 1 评论 -
Hibernate中OneToOne延时加载的问题-解决方案
在上一篇文章中我们已经解释了延迟加载的问题。那我们该如何解决? 我觉得该分两个方面来讨论。 如果这是一个新的项目,在发布之前我们有足够的时间来修改数据的映射和关联关系、以及已经存在的sql语句,或者我们可以更改客户的数据库,并且不存在复杂的数据关系,可以做数据更新。那么我们可以通过修改两端的关联关系来解决这个问题。 但如果这是一个老的项目,已经发布,并且客户那里有大量的数据,那么建议是通过增加原创 2016-08-16 14:47:35 · 1574 阅读 · 0 评论 -
Hibernate中OneToOne延时加载的问题-现象和原因
关于OneToOne的延迟加载(fetch = FetchType.LAZY),我觉得是非常需要注意的一个问题。它不只是存在于Hibernate中,其他的ORM persistence framekwork也有同样的问题,至少我用过的eclipseLink也是一样的。这个问题之所以重要,是因为它在背后偷偷的降低了查询数据库的效率,但又极难发现,特别是当你进入一个老项目,发现软件的运行效率极低时,你就原创 2016-08-16 13:57:11 · 3617 阅读 · 1 评论 -
Hibernate用Query删除数据表中的数据的问题(EntityManager.clear())
前段时间把项目中的JPA从EclipseLink换成Hibernate。这其中遇到了很多问题,也记录了一部分在其他的文章中。这里介绍一个UT中遇到的问题。 当时的测试是忘H2数据库中插入多项数据,然后用Query的方式删除,assert读出来的数据是null。这个测试用例在EclipseLink下面是可以通过的,但换成Hibernate之后发现数据仍然可以读出这个数据。 测试用例如下: @Tes原创 2016-07-21 14:27:09 · 11713 阅读 · 0 评论 -
Hibernate 延迟加载剖析与代理模式应用
Hibernate 的延迟加载(lazy load)是一个被广泛使用的技术。这种延迟加载保证了应用只有在需要时才去数据库中抓取相应的记录。通过延迟加载技术可以避免过多、过早地加载数据表里的数据,从而降低应用的内存开销。Hibernate 的延迟加载本质上就是代理模式的应用,当程序通过 Hibernate 装载一个实体时,默认情况下,Hibernate 并不会立即抓取它的集合属性、关联实体所以对转载 2016-08-15 16:56:28 · 1175 阅读 · 0 评论 -
Ad hoc query
(转载自http://tonyguxu.blog.51cto.com/1148713/470862,转载请标明出处) 即席查询(Ad Hoc)是用户根据自己的需求,灵活的选择查询条件,系统能够根据用户的选择生成相应的统计报表。即席查询与普通应用查询最大的不同是普通的应用查询是定制开发的,而即席查询是由用户自定义查询条件的。 在数据仓库领域有一个概念叫Ad hoc queries转载 2016-07-19 17:57:37 · 5152 阅读 · 0 评论 -
实战记录:从EclipseLink迁移到Hibernate上(2)调试错误
尝试去运行我们的代码,你会发现各种形形色色的问题:@Id一上来就不能persisntence,先看看问题,column: id (should be mapped with insert=”false” update=”false”)Caused by: org.hibernate.MappingException: Repeated column in mapping for entity: co原创 2016-06-03 18:00:25 · 6435 阅读 · 0 评论 -
实战记录:从EclipseLink迁移到Hibernate上(1)替换
前言正在做的项目因为用了比较老,所以JTA居然还用老古董的EclipseLink,这玩意曾经把我坑惨,比如: JBoss会莫名其妙的偶现’eclipseLink Module not found’而导致PU无法persistence,从而导致整个EAR无法deploy的问题(虽然我不确定是不是和EclipseLink有关)。又比如: 系统中集成了jBpm之后,由于jbpm用的是另外一个datas原创 2016-06-03 17:29:32 · 7474 阅读 · 2 评论 -
MAC El Capitan以上版本安装cx_Oracle
其实安装的步骤是非常简单的,按照其他博客的安装: http://thelaziestprogrammer.com/sharrington/databases/oracle/install-cx_oracle-mac 你可以很快的完成。但我的版本是MacOs Sierra,无论怎么安装死活都是:Traceback (most recent call last): File "<string>"原创 2017-08-10 11:48:24 · 495 阅读 · 0 评论