一、jpa的简介和入门

JPA:Java Persistence API,接口规范
    Hinernate内部为JPA规范提供实现
    
    开发步骤(EntityManager):
        1、导入额外包:hibernate-release-5.0.7.Final\lib\jpa\hibernate-entitymanager-5.0.7.Final.jar
        2、使用jpa注解配置实体(实体与表的映射关系)
        3、配置EneityManager的核心配置文件
            在类加载路径下(src)下创建一个文件夹,名称META-INF
            在META-INF目录下创建核心配置文件 persistence.xml
        4、使用EntityManager的API对实体进行操作

二、Hibernate JPA的一对多的配置
    创建实体
    配置映射关系
        customer方:
            //当前客户有哪些联系人
            //一的一方:配置一对多,在多的一方维护外键(一的一方放弃外键维护权)
            //targetEntity:对方的字节码对象
            //mappedBy: 对方通过哪个属性与我方维护关系(mappedBy在放弃外键维护权的一方配置)
            @OneToMany(targetEntity=Linkman.class,mappedBy="customer")
            private Set<Linkman> linkmans = new HashSet<>();
        
        linkman方:
            //当前联系人属于哪一个客户
            //配置多对一
            //targetEntity:对方的字节码对象
            @ManyToOne(targetEntity=Customer.class)
            //维护外键  JoinColumn:连接字段信息(外键信息)
            //name:外键名称     referencedColumnName:与外键对应的主键名称
            @JoinColumn(name="lkm_cust_id",referencedColumnName="cust_id")
            private Customer customer;
        
    操作实体

三、Hibernate JPA的多对多的配置
    创建实体
    配置映射关系
        user方:
            //当前该用户具备哪些角色
            //配置多对多
            //targetEntity:对方的字节码对象
            //mappedBy:对方通过哪个属性与我方维护关系(放弃外键维护权的一方配置)
            @ManyToMany(targetEntity=Role.class,mappedBy="users")
            private Set<Role> roles = new HashSet<>();
        role方:
            //当前该角色被哪些用户使用
            //配置多对多
            //targetEntity:对方的字节码对象
            @ManyToMany(targetEntity=User.class)
            //User放弃外键维护权 Role去维护外键
            //配置关系
            //name:中间表的名称
            @JoinTable(
                name="sys_user_role",
                //joinColumns的name:该方(Role)在中间表中产生的外键名称
                //joinColumns的referencedColumnName:该方在中间表中产生的外键对应的主键名称
                joinColumns={@JoinColumn(name="rid",referencedColumnName="role_id")},
                //inverseJoinColumns的name:对方(User)在中间表中产生外键名称
                //inverseJoinColumns的referencedColumnName:对方(User)在中间表中产生外键对应的主键名称
                inverseJoinColumns={@JoinColumn(name="uid",referencedColumnName="user_id")}
            )
            private Set<User> users = new HashSet<>();
    操作实体

ORM-->Jpa-->Hibernate的关系

Hibernate知识点小结(四)--JPA的更多相关文章

  1. Hibernate知识点小结(三)-->一对多与多对多配置

    一.多表关系与多表设计 1.多表关系        一对一:            表的设计原则(分表原则):                优化表的性能                基于语意化分表 ...

  2. Hibernate知识点小结(二)

    一.持久化对象和标识符    1.持久化类        配置完关系后,操作的实体对应的类,成为持久化类 (Customer) 2.持久化类标识符(oid:object id)        3.持久 ...

  3. Hibernate知识点小结(一)--快速入门

    一.Hibernate的简介    1.Hibernate是一个开放源代码的对象关系映射框架    2.对象关系映射:ORM  Object Relation Mapping        对象与数据 ...

  4. Spring知识点小结(四)

    一.JdbcTemplate(jdbc模版--抽取的工具) web阶段DBUtils:        QueryRunner runner = new QueryRunner(dataSource); ...

  5. Hibernate知识点小结汇总

    Hibernate部分 1.为什么要使用Hibernate开发你的项目呢?Hibernate的开发流程是怎么样的? 为什么要使用 ①.对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复 ...

  6. Struts2知识点小结(四)--拦截器与注解开发

    一.Struts2的拦截器(interceptor) 作用:当请求进入struts2框架后(进入之前可以用filter进行拦截),想对请求进行拦截操作(功能增强.权限控制),需要拦截器组件 1.str ...

  7. C++重要知识点小结---3

    C++重要知识点小结---1:http://www.cnblogs.com/heyonggang/p/3246631.html C++重要知识点小结---2:http://www.cnblogs.co ...

  8. C++重要知识点小结---2

    C++重要知识点小结--1 :http://www.cnblogs.com/heyonggang/p/3246631.html 1.C++允许程序员声明一个不能有实例对象的类,这样的类惟一的用途是被继 ...

  9. React及Nextjs相关知识点小结

    React及Nextjs知识点小结 函数式组件和类组件区别是什么 1.函数式组件是用于创建无状态的组件,组件不会被实例化,无法访问this中的对象,无法访问生命周期方法,是无副作用的,相比于类组件函数 ...

随机推荐

  1. Java设计模式—适配器模式

    适配器模式的个人理解: 首先有一个目标角色.一个源角色还有一个适配器角色.我们要做的就是利用适配器角色将源角色转换为目标角色.而目标角色是一个正在良好运行的一个角色. 转换方法: (1)  适配器类继 ...

  2. all-to-mqtt

  3. R语言计算相关矩阵然后将计算结果输出到CSV文件

    R语言计算出一个N个属性的相关矩阵(),然后再将相关矩阵输出到CSV文件. 读入的数据文件格式如下图所示: R程序采用如下语句: data<-read.csv("I:\\SB\land ...

  4. matlab练习程序(单源最短路径Bellman-Ford)

    该算法可以用来解决一般(边的权值为负)的单源最短路径问题,而dijkstra只能解决权值非负的情况. 此算法使用松弛技术,对每一个顶点,逐步减少源到该顶点的路径的估计值,直到达到最短的路径. 算法运算 ...

  5. Java—IO流 文件的编码

    文件的编码 package cn.test; import java.io.UnsupportedEncodingException; public class Demo15 { public sta ...

  6. 5.Zabbix 3.0案例

    请查看我的有道云笔记: http://note.youdao.com/noteshare?id=15d986179cb65b45c5824e90995109ee&sub=D2E73572D97 ...

  7. SAPGUI里实现自定义的语法检查

    需求:在SAPGUI里点击这个语法检查的小图标或者直接按快捷键Ctrl+F2可以执行ABAP标准的语法检查. 如果需要实现SAPGUI里自定义的语法检查,比如,某团队强制要求应用程序类的每个方法的实现 ...

  8. NO.010-2018.02.15《上邪》两汉:佚名

    上邪_古诗文网 上邪 两汉:佚名 上邪,我欲与君相知,长命无绝衰.上天呀!我渴望与你相知相惜,长存此心永不褪减.上邪(yé)!:天啊!.上,指天.邪,语气助词,表示感叹. 相知:相爱.命:古与“令”字 ...

  9. AndroidStudio 添加 AndroidAnnotations

    1.添加对apt的依赖 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.neenbedankt. ...

  10. c++11之为什么C++11引入了std::ref?

    C++本身有引用(&),为什么C++11又引入了std::ref? 主要是考虑函数式编程(如std::bind)在使用时,是对参数直接拷贝,而不是引用.如下例子: #include <f ...