
JPA
JE_GE
SpringBoot,Hibernate,JPA,MyBatis
展开
-
JPA 菜鸟教程 1 环境搭建
JPAJPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。Hibernate3.2+、TopLink 10.1.3以及OpenJPA都提供了JPA的实现。搭建JPA开发环境JPA依赖jar文件、数据库驱动文件META-INF\persistence.xml领域对象,P原创 2016-12-07 22:41:58 · 2837 阅读 · 1 评论 -
JPA 菜鸟教程 17 继承-独立表-TABLE_PER_CLASS
PerTable策略每个具体的类一个表的策略举例这种映射策略每个类都会映射成一个单独的表,类的所有属性,包括继承的属性都会映射成表的列。 这种映射策略的缺点是:对多态关系的支持有限,当查询涉及到类继承结构时通常需要发起SQL UNION查询。配置注解为:@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)ddl语原创 2016-12-23 21:27:20 · 1955 阅读 · 0 评论 -
JPA 菜鸟教程 14 自定义类型-@Embedded+@Embeddable
自定义类型在hibernate中实现自定义类型,需要去实现UserType接口即可或者以Component的形式提供。JPA的@Embedded注解有点类似,通过此注解可以在Entity模型中使用一般的java对象,不过此对象还需要用@Embeddable注解标注。需求产生Employee类有一个address属性, address应该有city,street两个属性, 一般的原创 2016-12-20 21:41:56 · 3960 阅读 · 0 评论 -
JPA 菜鸟教程 13 复合主键-@EmbeddedId+@Embeddable
复合主键指多个主键联合形成一个主键组合需求产生比如航线一般是由出发地及目的地确定,如果要确定唯一的航线就可以用出发地和目的地一起来表示ddl语句同复合主键-2个@Id和复合主键-2个@Id+@IdClass一样Airlinepackage com.jege.jpa.embedded;import javax.persistence.EmbeddedId;原创 2016-12-19 13:32:35 · 2807 阅读 · 0 评论 -
JPA 菜鸟教程 12 复合主键-2个@Id+@IdClass
复合主键指多个主键联合形成一个主键组合需求产生比如航线一般是由出发地及目的地确定,如果要确定唯一的航线就可以用出发地和目的地一起来表示ddl语句同复合主键-2个@Id一样Airlinepackage com.jege.jpa.composite;import java.io.Serializable;import javax.persistence.原创 2016-12-18 20:02:47 · 7172 阅读 · 2 评论 -
JPA 菜鸟教程 异常 集锦
异常:Associations marked as mappedBy must not define database mappings like @JoinTable or @JoinColumnhibernate升级到3.5版本或者更新的版本时出现这样的异常在3.5版本之后@JoinColumn与mappingBy是互斥的,而在更早版本的hibernate是允许这两个互相存在。 所以原创 2017-01-06 12:52:43 · 1461 阅读 · 0 评论 -
JPA 菜鸟教程 21 JPA2.0 @MapKeyColumn
@MapKeyColumn用@JoinColumn注解和@MapKeyColumn处理一对多关系 ddl语句CREATE TABLE `t_employee` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=I原创 2017-01-05 21:53:27 · 2546 阅读 · 0 评论 -
JPA 菜鸟教程 20 JPA2.0 @CollectionTable
@CollectionTable指定集合表的详细信息,如果是JPA1.0必须再写一个Pojo类ddl语句CREATE TABLE `t_employee` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=Inn原创 2017-01-04 20:58:46 · 5440 阅读 · 0 评论 -
JPA 菜鸟教程 15 继承-一个表-SINGLE_TABLE
继承映射策略一个类继承结构一个表的策略。这是继承映射的默认策略。举例如果实体类Teacher继承实体类Person,实体类Student也继承自实体Person,那么只会映射成一个表,这个表中包括了实体类Person、Teacher、Student中所有的字段配置JPA使用一个叫做“discriminator列”来区分某一行数据是应该映射成哪个实体。 注解为:@Inher原创 2016-12-21 13:26:36 · 3071 阅读 · 0 评论 -
JPA 菜鸟教程 16 继承-联合子类-JOINED
联合子类策略这种情况下子类的字段被映射到各自的表中,这些字段包括父类中的字段,并执行一个join操作来实例化子类。举例如果实体类Teacher继承实体类Person,实体类Student也继承自实体Person, 会映射成3个表,子表不包含父表的属性,子表只有子类的属性,子表主键外键关联父表的id配置注解为:@Inheritance(strategy = Inheritanc原创 2016-12-22 21:24:23 · 1218 阅读 · 0 评论 -
JPA 菜鸟教程 18 自动把firstName+lastName合并为name字段
需求产生设计的国际化网站,页面需要输入firstName,lastName,后台数据库只需要存储name属性。 firstName,lastName保存到数据库name属性,按照,分隔保存。 name属性不提供getter,setter方法。ddl语句CREATE TABLE `t_user` ( `id` bigint(20) NOT NULL AUTO_INCREMEN原创 2017-01-02 21:39:36 · 2014 阅读 · 0 评论 -
JPA 菜鸟教程 11 复合主键-2个@Id
复合主键指多个主键联合形成一个主键组合需求产生比如航线一般是由出发地及目的地确定,如果要确定唯一的航线就可以用出发地和目的地一起来表示ddl语句CREATE TABLE `t_airline` ( `startCity` varchar(3) NOT NULL, `endCity` varchar(3) NOT NULL, `name` varchar(255) D原创 2016-12-17 20:42:25 · 11470 阅读 · 0 评论 -
JPA 菜鸟教程 2 单表操作
JPASun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据。他的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在Hibernate、TopLink等ORM框架各自为营的局面。值得注意的是,JPA是在充分吸收了现有Hibernate、TopLink等ORM框架的基础上发展而来的,具有易于使用、伸缩性强等优点简原创 2016-12-08 12:49:18 · 2914 阅读 · 1 评论 -
JPA 菜鸟教程 3 单向多对一
JPA中的@ManyToOne主要属性 - name(必需): 设定“many”方所包含的“one”方所对应的持久化类的属性名 - column(可选): 设定one方的主键,即持久化类的属性对应的表的外键 - class(可选): 设定one方对应的持久化类的名称,即持久化类属性的类型 - not-null(可选): 如果为true,,表示需要建立相互关联的两个表之间的外键约束原创 2016-12-09 23:13:48 · 3948 阅读 · 1 评论 -
JPA 菜鸟教程 4 单向一对多
JPA中的@OneToMany@Target({METHOD, FIELD}) @Retention(RUNTIME)public @interface OneToMany { Class targetEntity() default void.class; CascadeType[] cascade() default {}; FetchType fetch()原创 2016-12-10 23:56:33 · 4753 阅读 · 3 评论 -
JPA 菜鸟教程 5 双向一对多
双向一对多的ddl语句同单向多对一,单向一对多表的ddl语句一致Productpackage com.jege.jpa.one2many;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persi原创 2016-12-11 22:53:01 · 1324 阅读 · 0 评论 -
JPA 菜鸟教程 6 单向多对多
JPA中的@OneToMany单向多对多表的ddl语句CREATE TABLE `t_student` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `sname` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAUL原创 2016-12-12 21:16:52 · 3334 阅读 · 2 评论 -
JPA 菜鸟教程 7 双向多对多
双向多对多的ddl语句同单向多对多表的ddl语句一致Studentpackage com.jege.jpa.many2many;import java.util.HashSet;import java.util.Set;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.per原创 2016-12-13 12:26:39 · 832 阅读 · 0 评论 -
JPA 菜鸟教程 8 双向一对一共享主键
双向一对一-共享主键的ddl语句CREATE TABLE `t_person` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;原创 2016-12-14 21:00:26 · 1813 阅读 · 0 评论 -
JPA 菜鸟教程 9 双向一对一唯一外键
双向一对一-唯一外键的ddl语句CREATE TABLE `t_person` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;原创 2016-12-15 21:39:11 · 5128 阅读 · 0 评论 -
JPA 菜鸟教程 10 双向一对一关联表
双向一对一-关联表的ddl语句CREATE TABLE `t_person` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;C原创 2016-12-16 17:53:01 · 799 阅读 · 0 评论 -
JPA 菜鸟教程 19 jpa uuid主键生成策略
ddl语句CREATE TABLE `t_user` ( `id` varchar(32) NOT NULL, `name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;Userpackage com.jege.jpa.primary;impor原创 2017-01-03 21:31:22 · 5814 阅读 · 0 评论