zoukankan      html  css  js  c++  java
  • Hibernate知识点小结(四)--JPA

    一、jpa的简介和入门

        JPA:Java Persistence API,接口规范
        Hinernate内部为JPA规范提供实现
        
        开发步骤(EntityManager):
            1、导入额外包:hibernate-release-5.0.7.Finallibjpahibernate-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的关系













  • 相关阅读:
    element 树形控件使用
    js粘贴图片并显示
    vue-element Tree树形控件通过id默认选中
    解决win10shift+右键显示在此处打开powershell而不是命令窗口的问题
    maven安装与配置
    解决dos窗口中文乱码问题
    vue单页面应用刷新网页后vuex的state数据丢失的解决方案
    vue 单个倒计时组件
    js将秒转换为时分秒
    vue3.0用vue-awesome-swiper
  • 原文地址:https://www.cnblogs.com/itworkerlittlewrite/p/9451237.html
Copyright © 2011-2022 走看看