java baseentity_如何在JPA的BaseEntity中实现equals()和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;
}
每个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()方法?相关推荐
- java == hashcode,java中==和equals和hashCode的区别
java中==和equals和hashCode的区别 == 的作用: 基本类型:比较的就是值是否相同 引用类型:比较的就是地址值是否相同(确切的说,是堆内存地址) equals 的作用: 引用类型:默 ...
- Java基础提升篇:equals()与hashCode()方法详解
概述 java.lang.Object类中有两个非常重要的方法: public boolean equals(Object obj) public int hashCode() Object类是类继承 ...
- 学习Java编程equals()和hashCode()方法
equals()和hashCode()区别? equals():反映的是对象或变量具体的值,即两个对象里面包含的值--可能是对象的引用,也可能是值类型的值. hashCode():计算出对象实例的哈希 ...
- 搞懂 Java equals 和 hashCode 方法
搞懂 Java equals 和 hashCode 方法 分析完 Java List 容器的源码后,本来想直接进入 Set 和 Map 容器的源码分析,但是对于这两种容器,内部存储元素的方式的都是以键 ...
- 【Java基础】之深入讨论equals()和hashcode()方法
这篇文章将详解介绍 Java 的 equals() 与 hashCode() 方法 我们知道 Object 类是类继承结构的基础,所以是每一个类的父类,所有的对象,包括数组,都实现了在 Object ...
- java8与hibernate_如何在JPA和Hibernate中使用Java 8 LocalDateTime
小编典典 由于Hibernate 4不支持它,因此您需要实现一个如本示例所示的用户类型. import org.hibernate.HibernateException; import org.hib ...
- java readline 实现_基于自定义BufferedReader中的read和readLine方法
实例如下所示: package day0208; import java.io.FileReader; import java.io.IOException; /* * 自定义读取缓冲区,实现Buff ...
- JAVA进阶教学之(Object类中的equals方法)
public boolean equals(Object obj){return (this == obj); } 原始equals方法是判断两个对象的内存地址是否相等的(内存地址相等,保存的值也相等 ...
- JAVA入门级教学之(Object类中的equals方法)
package com.lbj.javase18; /** * 关于Object中的equals方法: * * Object中的equals方法(核心): * public boolean ...
最新文章
- 使用infinite-scroll实现Ghost博文列表的滚动加载
- 基于TCP的一对回射客户/服务器程序及其运行过程分析( 下 )
- Java基础学习-Path环境变量的配置
- java mvc实例_Java Web实现的基本MVC实例分析
- 谷歌开源 Kotlin 版本 gRPC
- 蓝桥杯 ADV-140 算法提高 开灯游戏
- windows播放声音
- 淘宝新规:售假者严重违规须缴纳100%保证金
- 无法更新 EntitySet“Ips_Articles”,因为它有一个 DefiningQuery,而 ModificationFunctionMapping 元素中没有支持当前操作的 Inse...
- 晶振旁的电阻(并联与串联)
- 基于JSP实现医院病历管理系统,程序员如何在工作中自我增值
- MUI开发大全(小程序前端框架)
- 计算机基础知识---位运算的简介
- C++语言篇 第五章 一维数组
- 秋色园QBlog高性能博客开放源码下载 限量下载1000次
- java zhs16gbk_JAVA-----乱码的处理 乱码的解决方法总结
- java多级审批流程_[SharePoint 工作流] 如何设计一个通用的多级多审核工作流程(三):工作流开发...
- RT-Thread 使用FAL多字节读写FLASH
- Tableau图表 • 瀑布图
- 分子生物学词汇(S~Z)
热门文章
- 另一个ExcelHelper
- POJ3468 A Simple Problem with Integers【线段树 成段更新+求和 lazy标志】
- xStream完美转换XML、JSON
- 有助于建立使用者对套件的信任 GitHub释出管理服务
- linux环境安装nagiosgraph将nagios的性能数据绘制成动态图表?
- 浏览器窗口的高度和宽度
- ASP.NET实现微信功能(2)(服务号高级群发)
- [hadoop新实战2]hadoop伪分布式安装序列(支持ubuntu和redhat)
- 10套华丽的 Windows 8 Metro 风格图标【2000+免费图标】
- 开源Linux 3.3内核首次融合Android代码