
JPA
恒奇恒毅
Javaer
展开
-
JPA:一对多、多对一关系
类似于hibernate的一对多和多对一关系,JPA也支持这种关系。多的一方为关系维护端,关系维护端负责外键记录的更新,关系被维护端是没有权利更新外键记录。例如订单和订单项之间的关系Order.javaimport java.util.HashSet;import java.util.Set;import javax.persistence.CascadeType;转载 2015-11-27 11:38:50 · 3759 阅读 · 0 评论 -
SpringBoot多数据源配置和使用
SpringBoot中使用JPA如果是单数据源,很好处理,只需要在配置文件中配置连接参数和性能参数即可。如下:username、password、url、driver-class-name等配置省略。。。spring.datasource.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.driver-class-n...原创 2018-08-01 09:36:10 · 3259 阅读 · 0 评论 -
一个JPA环境下原生SQL查询的工具类
感谢JFinal的Db.paginate方法,此实现参考之。我们在JPA环境下,某些查询的SQL可能是动态生成的,查询或者分页我们就需要手动使用EntityManager来查询,参数处理和结果集就需要手动,此工具类就是干这些脏活累活的。废话不多说,直接上代码。import cn.palmte.gpas.bean.Page;import org.hibernate.Session;im...原创 2018-08-01 09:05:15 · 2841 阅读 · 0 评论 -
JPA/Hibernate环境的复杂查询
我们在SpringData/JPA/Hibernate环境中,对于一些简单的增删改查可以使用Repository搞定,更复杂的查询可以使用JpaSpecificationExecutor等查询工具搞定,但是更复杂的,比如多表关联查询就有点儿力不从心了。今日主角闪亮登场。package com.palmte.tcm.utils;import com.palmte.tcm.pojo.Page;i...原创 2018-06-14 18:08:15 · 1167 阅读 · 1 评论 -
Spring:整合JPA
LocalEntityManagerFactoryBean"> JpaTransactionManager"> META-INF下的persistence.xmlxsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://j转载 2015-12-09 11:15:24 · 329 阅读 · 0 评论 -
JPA:继承
在JPA中,实体继承关系的映射策略共有三种:单表继承策略(table per class)、Joined策略(table per subclass)和Table_PER_Class策略。 1.单表继承策略 单表继承策略,父类实体和子类实体共用一张数据库表,在表中通过一列辨别字段来区别不同类别的实体。具体做法如下:a.在父类实体的@Entity注解下添加如下的注解:转载 2015-11-27 13:21:27 · 419 阅读 · 0 评论 -
JPA:双向一对一
例如身份证和人之间的关系下面是基于外键的一对一关系IDCard.javaimport javax.persistence.CascadeType;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;impor转载 2015-11-27 12:21:26 · 392 阅读 · 0 评论 -
JPA:联合主键
JPA中将联合主键看做一个对象,所以将联合主键放在一个类中AirLine.javaimport javax.persistence.Column;import javax.persistence.EmbeddedId;import javax.persistence.Entity;@Entitypublic class AirLine { private转载 2015-11-27 13:00:48 · 939 阅读 · 0 评论 -
JPA:双向多对多关系
例如学生和老师之间的多对多关系Teacher.javaimport java.util.HashSet;import java.util.Set;import javax.persistence.CascadeType;import javax.persistence.Column;import javax.persistence.Entity;import j转载 2015-11-27 12:40:37 · 475 阅读 · 0 评论 -
JPA返回实体如果修改某些字段会执行update语句
JPA返回一个从数据库查询的实体的时候,如果对这个实体执行了修改操作,典型的set方法被调用,那么就会执行一个update语句。可以通过clone方法或者转换为Map等方式避免。public Map<String , Object> buildLoginSuccess(Entity entity){ Entity temp = entity; if...原创 2019-07-24 21:02:09 · 1905 阅读 · 0 评论