【发布时间】:2021-10-20 22:33:29
【问题描述】:
当我运行我的项目时,Hibernate 会自动创建名称错误的表。 我有两个表 User 和 Role 以及三个类: 抽象类IdField.java:
@Entity
public abstract class IdField {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long id;
//constructors and getters setters
User.java 类:
@Entity
@Table(name = "user", schema = "quiz_app")
public class User extends IdField{
@Column(name = "user_name")
private String userName;
@Column(name = "password")
private String password;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
@Column(name = "email")
private String email;
@ManyToMany(fetch = FetchType.EAGER)
private Collection<Role> roles = new ArrayList<>();
//constructors and getters setters
和 Role.java 类:
@Entity
@Table(name = "role", schema = "quiz_app")
public class Role extends IdField{
@Enumerated(EnumType.ORDINAL)
@Column(name = "role_name")
private RoleName roleName;
//constructors and getters setters
Hibernate 创建了两个名称错误的表,分别为 id_field 和 id_field_roles:
但我想要@Table 注释中的表名,例如“用户”和“角色”
【问题讨论】:
标签: java spring-boot hibernate spring-data-jpa