不建议为 JPA 实体使用 equals、hashCode 和 toString 的默认数据类实现。 它们不会考虑可能的代理,并且可能会破坏实体特性的延迟初始化。 这可能会导致正确性和性能方面的问题,例如基于哈希的集合中出现重复条目以及从数据库中抢占式预取。
示例:
@Entity
data class Employee(
@Id @GeneratedValue
var id: Long? = null,
var name: String = "",
var department: String = ""
)
应用该快速修复后:
@Entity
class Employee(
@Id @GeneratedValue
var id: Long? = null,
var name: String = "",
var department: String = ""
)