我有一个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;

}

每个JPA实体都从BaseEntity扩展并继承BaseEntity的id和version属性.

在BaseEntity中实现equals()和hashCode()方法的最佳方法是什么? BaseEntity的每个子类都将从BaseEntity继承equals()和hashCode()行为.

我想做这样的事情:

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;

}

}

但是instanceof运算符需要classtype而不是class对象;那是:

> if(其他instanceof BaseEntity)

这将起作用,因为BaseEntity在这里是classType

> if(this.getClass的其他实例)

这不起作用,因为this.getClass()返回此对象的类对象

java baseentity_如何在JPA的BaseEntity中实现equals()和hashcode()方法?相关推荐

  1. java == hashcode,java中==和equals和hashCode的区别

    java中==和equals和hashCode的区别 == 的作用: 基本类型:比较的就是值是否相同 引用类型:比较的就是地址值是否相同(确切的说,是堆内存地址) equals 的作用: 引用类型:默 ...

  2. Java基础提升篇:equals()与hashCode()方法详解

    概述 java.lang.Object类中有两个非常重要的方法: public boolean equals(Object obj) public int hashCode() Object类是类继承 ...

  3. 学习Java编程equals()和hashCode()方法

    equals()和hashCode()区别? equals():反映的是对象或变量具体的值,即两个对象里面包含的值--可能是对象的引用,也可能是值类型的值. hashCode():计算出对象实例的哈希 ...

  4. 搞懂 Java equals 和 hashCode 方法

    搞懂 Java equals 和 hashCode 方法 分析完 Java List 容器的源码后,本来想直接进入 Set 和 Map 容器的源码分析,但是对于这两种容器,内部存储元素的方式的都是以键 ...

  5. 【Java基础】之深入讨论equals()和hashcode()方法

    这篇文章将详解介绍 Java 的 equals() 与 hashCode() 方法 我们知道 Object 类是类继承结构的基础,所以是每一个类的父类,所有的对象,包括数组,都实现了在 Object ...

  6. java8与hibernate_如何在JPA和Hibernate中使用Java 8 LocalDateTime

    小编典典 由于Hibernate 4不支持它,因此您需要实现一个如本示例所示的用户类型. import org.hibernate.HibernateException; import org.hib ...

  7. java readline 实现_基于自定义BufferedReader中的read和readLine方法

    实例如下所示: package day0208; import java.io.FileReader; import java.io.IOException; /* * 自定义读取缓冲区,实现Buff ...

  8. JAVA进阶教学之(Object类中的equals方法)

    public boolean equals(Object obj){return (this == obj); } 原始equals方法是判断两个对象的内存地址是否相等的(内存地址相等,保存的值也相等 ...

  9. JAVA入门级教学之(Object类中的equals方法)

    package com.lbj.javase18; /**  * 关于Object中的equals方法:  *   * Object中的equals方法(核心):  *  public boolean ...

最新文章

  1. 使用infinite-scroll实现Ghost博文列表的滚动加载
  2. 基于TCP的一对回射客户/服务器程序及其运行过程分析( 下 )
  3. Java基础学习-Path环境变量的配置
  4. java mvc实例_Java Web实现的基本MVC实例分析
  5. 谷歌开源 Kotlin 版本 gRPC
  6. 蓝桥杯 ADV-140 算法提高 开灯游戏
  7. windows播放声音
  8. 淘宝新规:售假者严重违规须缴纳100%保证金
  9. 无法更新 EntitySet“Ips_Articles”,因为它有一个 DefiningQuery,而 ModificationFunctionMapping 元素中没有支持当前操作的 Inse...
  10. 晶振旁的电阻(并联与串联)
  11. 基于JSP实现医院病历管理系统,程序员如何在工作中自我增值
  12. MUI开发大全(小程序前端框架)
  13. 计算机基础知识---位运算的简介
  14. C++语言篇 第五章 一维数组
  15. 秋色园QBlog高性能博客开放源码下载 限量下载1000次
  16. java zhs16gbk_JAVA-----乱码的处理 乱码的解决方法总结
  17. java多级审批流程_[SharePoint 工作流] 如何设计一个通用的多级多审核工作流程(三):工作流开发...
  18. RT-Thread 使用FAL多字节读写FLASH
  19. Tableau图表 • 瀑布图
  20. 分子生物学词汇(S~Z)

热门文章

  1. 另一个ExcelHelper
  2. POJ3468 A Simple Problem with Integers【线段树 成段更新+求和 lazy标志】
  3. xStream完美转换XML、JSON
  4. 有助于建立使用者对套件的信任 GitHub释出管理服务
  5. linux环境安装nagiosgraph将nagios的性能数据绘制成动态图表?
  6. 浏览器窗口的高度和宽度
  7. ASP.NET实现微信功能(2)(服务号高级群发)
  8. [hadoop新实战2]hadoop伪分布式安装序列(支持ubuntu和redhat)
  9. 10套华丽的 Windows 8 Metro 风格图标【2000+免费图标】
  10. 开源Linux 3.3内核首次融合Android代码