java springboot中的多对多和一对多映射
我有3个实体,我想转换为具有关系的表 ------使用者------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
@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;