Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带hibernate映射的Spring引导数据JPA_Spring_Hibernate_Spring Boot_Spring Data Jpa_Hibernate Mapping - Fatal编程技术网

带hibernate映射的Spring引导数据JPA

带hibernate映射的Spring引导数据JPA,spring,hibernate,spring-boot,spring-data-jpa,hibernate-mapping,Spring,Hibernate,Spring Boot,Spring Data Jpa,Hibernate Mapping,我在springbootprojectconnectwithJPA工作。我被困在用户和角色之间的映射多对多关系中。我正在使用持久性工具根据模式表生成java类 表用户的Sql脚本: CREATE TABLE "MPOSML"."USERS" ( "USER_ID" VARCHAR2(32 BYTE), "USER_NAME" VARCHAR2(64 BYTE), "PASSWORD" VARCHAR2(64 BYTE), "BRANCH_ID" VAR

我在
springboot
projectconnectwith
JPA
工作。我被困在
用户
角色
之间的映射
多对多
关系中。我正在使用持久性工具根据模式表生成java类

表用户的Sql脚本:

CREATE TABLE "MPOSML"."USERS" 
   (    "USER_ID" VARCHAR2(32 BYTE), 
    "USER_NAME" VARCHAR2(64 BYTE), 
    "PASSWORD" VARCHAR2(64 BYTE), 
    "BRANCH_ID" VARCHAR2(6 BYTE), 
    "GROUP_ID" VARCHAR2(16 BYTE), 
    "ENABLED" VARCHAR2(5 BYTE), 
    "CREATE_BY" VARCHAR2(16 BYTE), 
    "CREATED_ON" DATE, 
    "MODIFIED_BY" VARCHAR2(16 BYTE), 
    "MODIFIED_ON" DATE, 
    "VERSION_NUMBER" NUMBER(4,0), 
    "PREFERED_LOCALE" VARCHAR2(5 BYTE) DEFAULT 'en', 
    "PREFERED_THEME" VARCHAR2(20 BYTE), 
    "FAILED_ATTEMPTS" NUMBER(3,0) DEFAULT 0, 
    "CLIENT_ID" VARCHAR2(16 BYTE), 
    "TEL" VARCHAR2(30 BYTE), 
    "EMAIL" VARCHAR2(120 BYTE), 
    "C_SMS" VARCHAR2(5 BYTE) DEFAULT 'false', 
    "C_IDEVICE" VARCHAR2(5 BYTE) DEFAULT 'false', 
    "C_WEB" VARCHAR2(5 BYTE) DEFAULT 'false', 
    "C_ANDROID" VARCHAR2(5 BYTE) DEFAULT 'false', 
    "DEVICE_CODE" VARCHAR2(2000 BYTE) DEFAULT 'WEB', 
    "ISAUTHORIZE" VARCHAR2(5 BYTE), 
     CONSTRAINT "USERS_ENABLED_CHECK" CHECK ("ENABLED" IS NOT NULL) ENABLE NOVALIDATE, 
     CONSTRAINT "USERS_GROUP_ID_CHECK" CHECK ("GROUP_ID" IS NOT NULL) ENABLE NOVALIDATE, 
     CONSTRAINT "USERS_PASSWORD_CHECK" CHECK ("PASSWORD" IS NOT NULL) ENABLE NOVALIDATE, 
     CONSTRAINT "USERS_USER_NAME_CHECK" CHECK ("USER_NAME" IS NOT NULL) ENABLE NOVALIDATE, 
     CONSTRAINT "PK_USERS" PRIMARY KEY ("USER_ID", "CLIENT_ID")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "MPOS"  ENABLE
   ) SEGMENT CREATION IMMEDIATE 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "MPOS" ;
表角色的sql

CREATE TABLE "MPOSML"."ROLES" 
   (    "ROLE_ID" VARCHAR2(16 BYTE), 
    "ROLE_NAME" VARCHAR2(64 BYTE), 
    "ENABLED" VARCHAR2(5 BYTE), 
    "CREATED_BY" VARCHAR2(16 BYTE), 
    "CREATED_ON" DATE, 
    "MODIFIED_BY" VARCHAR2(16 BYTE), 
    "MODIFIED_ON" DATE, 
    "VERSION_NUMBER" NUMBER(4,0), 
    "ROLE_GROUP" VARCHAR2(20 BYTE), 
     CONSTRAINT "ROLES_ENABLED_CHECK" CHECK ("ENABLED" IS NOT NULL) ENABLE NOVALIDATE, 
     CONSTRAINT "ROLES_ROLE_NAME_CHECK" CHECK ("ROLE_NAME" IS NOT NULL) ENABLE NOVALIDATE, 
     CONSTRAINT "ROLES_UNIQUE_KEY" UNIQUE ("ROLE_NAME")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "MPOS"  ENABLE, 
     CONSTRAINT "PK_ROLES" PRIMARY KEY ("ROLE_ID")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "MPOS"  ENABLE
   ) SEGMENT CREATION IMMEDIATE 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "MPOS" ;
CREATE TABLE "MPOSML"."USERS_ROLES" 
   (    "USER_ID" VARCHAR2(16 BYTE), 
    "ROLE_ID" VARCHAR2(16 BYTE), 
    "SELECTED" VARCHAR2(5 BYTE), 
    "CREATED_BY" VARCHAR2(16 BYTE), 
    "CREATED_ON" DATE, 
    "MODIFIED_BY" VARCHAR2(16 BYTE), 
    "MODIFIED_ON" DATE, 
    "VERSION_NUMBER" NUMBER(4,0), 
    "CLIENT_ID" VARCHAR2(16 BYTE), 
     CONSTRAINT "USERSROLES_PRIMARY_KEY" PRIMARY KEY ("CLIENT_ID", "USER_ID", "ROLE_ID")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "MPOS"  ENABLE, 
     CONSTRAINT "FK_USERSROLES_ROLE_ID" FOREIGN KEY ("ROLE_ID")
      REFERENCES "MPOSML"."ROLES" ("ROLE_ID") ON DELETE CASCADE ENABLE NOVALIDATE
   ) SEGMENT CREATION IMMEDIATE 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "MPOS" ;
表用户的SQL\u角色

CREATE TABLE "MPOSML"."ROLES" 
   (    "ROLE_ID" VARCHAR2(16 BYTE), 
    "ROLE_NAME" VARCHAR2(64 BYTE), 
    "ENABLED" VARCHAR2(5 BYTE), 
    "CREATED_BY" VARCHAR2(16 BYTE), 
    "CREATED_ON" DATE, 
    "MODIFIED_BY" VARCHAR2(16 BYTE), 
    "MODIFIED_ON" DATE, 
    "VERSION_NUMBER" NUMBER(4,0), 
    "ROLE_GROUP" VARCHAR2(20 BYTE), 
     CONSTRAINT "ROLES_ENABLED_CHECK" CHECK ("ENABLED" IS NOT NULL) ENABLE NOVALIDATE, 
     CONSTRAINT "ROLES_ROLE_NAME_CHECK" CHECK ("ROLE_NAME" IS NOT NULL) ENABLE NOVALIDATE, 
     CONSTRAINT "ROLES_UNIQUE_KEY" UNIQUE ("ROLE_NAME")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "MPOS"  ENABLE, 
     CONSTRAINT "PK_ROLES" PRIMARY KEY ("ROLE_ID")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "MPOS"  ENABLE
   ) SEGMENT CREATION IMMEDIATE 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "MPOS" ;
CREATE TABLE "MPOSML"."USERS_ROLES" 
   (    "USER_ID" VARCHAR2(16 BYTE), 
    "ROLE_ID" VARCHAR2(16 BYTE), 
    "SELECTED" VARCHAR2(5 BYTE), 
    "CREATED_BY" VARCHAR2(16 BYTE), 
    "CREATED_ON" DATE, 
    "MODIFIED_BY" VARCHAR2(16 BYTE), 
    "MODIFIED_ON" DATE, 
    "VERSION_NUMBER" NUMBER(4,0), 
    "CLIENT_ID" VARCHAR2(16 BYTE), 
     CONSTRAINT "USERSROLES_PRIMARY_KEY" PRIMARY KEY ("CLIENT_ID", "USER_ID", "ROLE_ID")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "MPOS"  ENABLE, 
     CONSTRAINT "FK_USERSROLES_ROLE_ID" FOREIGN KEY ("ROLE_ID")
      REFERENCES "MPOSML"."ROLES" ("ROLE_ID") ON DELETE CASCADE ENABLE NOVALIDATE
   ) SEGMENT CREATION IMMEDIATE 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "MPOS" ;
然后,在生成java类之后,它包含3个文件:角色、用户和UsersPK 类用户SPK

public class UsersPK implements Serializable {
    private String userId;
    private String clientId;

    @Column(name = "USER_ID")
    @Id
    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    @Column(name = "CLIENT_ID")
    @Id
    public String getClientId() {
        return clientId;
    }

    public void setClientId(String clientId) {
        this.clientId = clientId;
    }
}
类用户

@Entity
@IdClass(UsersPK.class)
public class Users {
    private String userId;
    private String userName;
    private String clientId;

    @ManyToMany
    private Set<Roles> roles;
    @JoinTable(
            name = "users_roles",
            joinColumns = @JoinColumn(name = "user_id"),
            inverseJoinColumns = @JoinColumn(name = "role_id")
    )
    public Set<Roles> getRoles() {
        return roles;
    }

    public void setRoles(Set<Roles> roles) {
        this.roles = roles;
    }
   //getter and setter
}
@Entity
public class Roles {
    private String roleId;
    private String roleName;
    private String enabled;
    private String createdBy;
    private Time createdOn;
    private String modifiedBy;
    private Time modifiedOn;
    private Long versionNumber;
    private String roleGroup;

    @ManyToMany(mappedBy = "roles")
    private Set<Users> users;

//getter & setter
}
我在一些文章中进行了研究,发现它们的映射与我的相同,不知道这篇文章会发生什么


任何解决方案都将不胜感激。谢谢并致以问候。

删除
mappedBy
您可以执行
mappedBy
操作,也可以执行联接表操作,但不能同时执行。您好,请尝试删除mappedBy并保留联接表,但结果仍然相同。无论如何,谢谢。你的
@JoinTable
应该在字段上,而不是getter上。此外,注释应该位于get/set方法或字段上,而不是同时位于两者。