• 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的关系













  • 相关阅读:
    PyCharm 3.4注册码
    监控Oracle索引是否被启用
    Oracle execute plan 原理分析与实例分享(转)
    6 个重构方法可帮你提升代码质量(转载)
    跟我一起学Oracle 11g【2】----用户管理(转载)
    notecore设置linux/Unix系统文件权限
    Unicode特殊字符的坑
    net多线程
    走过的HttpClient坑
    Postgre备份还原
  • 原文地址:https://www.cnblogs.com/itworkerlittlewrite/p/9451237.html
Copyright © 2020-2023  润新知