问题一:
如果实体继承一个超类,在持久化时报:org.hibernate.AnnotationException: No identifier specified for entity。。。
经查找,原因是继承的问题,应在超类上加注:@MappedSuperclass
问题二:
实体继承一个超类,持久化时没有任何异常,但对象并没有保存。
这是可能是超类不是抽象的。必须将被继承的超类声明为abstract.
@MappedSuperclasspublic abstract class BaseEntity implements Serializable { // pk protected String id; @Id @GenericGenerator(name = "generator", strategy = "uuid") @GeneratedValue(generator = "generator") @Column(name = "ID", unique = true, nullable = false, length = 32) public String getId() { return id; } public void setId(String id) { this.id = id; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((id == null) ? 0 : id.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; final BaseEntity other = (BaseEntity) obj; if (id == null) { if (other.id != null) return false; } else if (!id.equals(other.id)) return false; return true; } @Override public String toString() { String name = this.getClass().getName(); if (id == null) { return name + "(Unpersisted Entity)"; } else { return name + "(id=" + id.toString() + ")"; } }}
相关资源:敏捷开发V1.0.pptx