java springboot中的多对多和一对多映射

java springboot中的多对多和一对多映射,java,mysql,spring-boot,many-to-many,one-to-many,Java,Mysql,Spring Boot,Many To Many,One To Many,我有3个实体,我想转换为具有关系的表 ------使用者------ @OneToMany不创建表。 @许多人创建表时,必须指定其详细信息,如: 在用户类中: @ManyToMany @JoinTable(name = "users_roles", joinColumns = { @JoinColumn(name = "user_id") }, inverseJoinColumns = { @JoinColumn(name = &q

我有3个实体,我想转换为具有关系的表

------使用者------


@OneToMany不创建表。 @许多人创建表时,必须指定其详细信息,如:

在用户类中:

 @ManyToMany
 @JoinTable(name = "users_roles", 
    joinColumns = { @JoinColumn(name = "user_id") }, 
    inverseJoinColumns = { @JoinColumn(name = "role_id") })
 private Set<Role> roles;
@manytomy
@JoinTable(name=“用户\角色”,
joinColumns={@JoinColumn(name=“user_id”)},
inverseJoinColumns={@JoinColumn(name=“role\u id”)})
私人设定角色;
在角色类中:

@ManyToMany(mappedBy="roles")
private Set<User> users;
@ManyToMany(mappedBy=“角色”)
私人用户;

谢谢你的工作,但我有个问题!创建的用户角色表没有任何外键。。我也知道为什么会发生在我身上,不幸的是我也不知道。。。在我的搜索中,我找到了注释@MapsId,但我没有测试它。我在那个链接上看到了:我手动设置了数据库上的外键。我修复了它。你应该将spring.jpa.properties.hibernate.dialogue.storage_engine=innodb spring.jpa.properties.hibernate.dialogue=org.hibernate.dialogue.mysql55方言添加到你的应用程序中。properties太棒了!!!我要申请我的密码。谢谢
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString

@Entity
@Table(name = "institution")
public class Institution {
    @Id
    @GeneratedValue
    @Column(name="institution_Id")
    private int institutionId;
    @Column(name="name")
    private String name;
    @Column(name="type")
    private String type;
    @Column(name="location")
    private String location;
    @OneToMany(mappedBy = "institution", fetch = FetchType.LAZY)
    private Set<User> user;
    
}
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/mydb
spring.datasource.username = root
spring.datasource.password = pass123
spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto = update
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
server.port=9090
 @ManyToMany
 @JoinTable(name = "users_roles", 
    joinColumns = { @JoinColumn(name = "user_id") }, 
    inverseJoinColumns = { @JoinColumn(name = "role_id") })
 private Set<Role> roles;
@ManyToMany(mappedBy="roles")
private Set<User> users;