5 java jpa equals tostring hashcode
我有一个BaseEntity类,它是我的应用程序中所有JPA实体的超类.
@MappedSuperclass
public abstract class BaseEntity implements Serializable {
private static final long serialVersionUID = -3307436748176180347L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable=false, updatable=false)
protected long id;
@Version
@Column(name="VERSION", nullable=false, updatable=false, unique=false)
protected long version;
}
Run Code Online (Sandbox Code Playgroud)
每个JPA实体都延伸BaseEntity并继承id和version属性BaseEntity.
这里实施equals()和hashCode()方法的最佳方法是BaseEntity什么?BaseEntity将继承equals()和hashCode()行为形式的每个子类BaseEntity.
我想做这样的事情:
public boolean equals(Object other){
if (other instanceof this.getClass()){ //this.getClass() gives class object but instanceof operator expect ClassType; so it does not work
return this.id == ((BaseEntity)other).id;
} else {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
但是instanceof运算符需要classtype而不是class对象; 那是:
if(other instanceof BaseEntity)
这将起作用,因为BaseEntity在这里是classType
if(other instanceof this.getClass)
这将无法工作,因为this.getClass()返回对象的类this对象
| 归档时间: |
|
| 查看次数: |
3603 次 |
| 最近记录: |