关于使用注解映射的一些问题

xiaoxiao2025-12-13  5

问题一: 如果实体继承一个超类,在持久化时报: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
转载请注明原文地址: https://www.6miu.com/read-5040801.html

最新回复(0)