在使用jpa自己建表功能的时候,出现了这个错误,其实很简单,就是因为创建的bean类中没有主键,添加上就可以了。
@Entity
@Table(name="user_role")
public class UserRole {
@Column(name="nickName")
private String nickName;
private int roleId;
但是如何你本身就不想在这个里面创建主键,那就采用@MappedSuperclass方法,使用这个注解的时候需要将@Entity注解去掉。
但是需要以下三点注意事项:
@MappedSuperclass注解只能标准在类上。
2.标注为@MappedSuperclass的bean类将不是一个完整的实体类,他将不会映射到数据库表,但是他的属性都将映射到其子类的数据库字段中。
3.标注为@MappedSuperclass的bean类不能再标注@Entity或@Table注解,也不需要实现序列化接口。
以下是代码,可以创建没有主键的实体。
@MappedSuperclass
@Table(name="user_role")
public class UserRole {
@Column(name="nickName")
private String nickName;
private int roleId;