可能在很多项目中会使用到Entity的共通父类,例如: package com.yycs.entity.base; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.MappedSuperclass; @MappedSuperclass public class BaseEntity { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Integer id; public void setId(Integer id) { this.id = id; } public Integer getId() { return id; } public boolean isNew() { return (this.id == null); } } 如果上诉代码中在使用@MappedSuperclass标签的地方使用了@Entity标签的话, 会让hibernate错误的认为所有的Entity都是在一张数据表中的。