Hibernate 中的 idclass mapping 问题

Posted 河图书卦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate 中的 idclass mapping 问题相关的知识,希望对你有一定的参考价值。

关于出现 idclass mapping 运行错误

@IdClass 注释通常用于定义包含复合键id的Class。即多个属性的关键复合。

@IdClass(CountrylanguageEntityPK.class)CountrylanguageEntityPK如下所示:

package org.entity;

import javax.persistence.Column;
import javax.persistence.Id;
import java.io.Serializable;
import java.util.Objects;

public class CountrylanguageEntityPK implements Serializable {
private String countryCode;
private String language;

@Column(name = "CountryCode", nullable = false, length = 3)
@Id
public String getCountryCode() {
return countryCode;
}

public void setCountryCode(String countryCode) {
this.countryCode = countryCode;
}

@Column(name = "Language", nullable = false, length = 30)
@Id
public String getLanguage() {
return language;
}

public void setLanguage(String language) {
this.language = language;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
CountrylanguageEntityPK that = (CountrylanguageEntityPK) o;
return Objects.equals(countryCode, that.countryCode) &&
Objects.equals(language, that.language);
}

@Override
public int hashCode() {
return Objects.hash(countryCode, language);
}
}

使用注解 @IdClass 的Entity类通常应该具有以下属性:

  1. 实现Serializable
  2. 一个构造函数,它接受id(即与之关联的字段@Id
  3. 重写equalshashCode

如果出现 idclass mapping 运行错误即可从以上三个三个方面查看问题原因所在,注:使用注解形式的同时如果编译器反向生成Entity.hbm.xml 的同时 hibernate.cfg.xml会被添加这些hbm.xml 的 mapping resource 项

则也会出现 idclass mapping 的错误。

<property name="connection.url">jdbc:mysql://localhost:3306/testdb?serverTimezone=UTC</property>)这项中想把useSSL=false&serverTimezone=UTC&verifyServerCertifate=false都添加进去怎么写?有知道的老铁请评论告知,在此感谢。















































以上是关于Hibernate 中的 idclass mapping 问题的主要内容,如果未能解决你的问题,请参考以下文章

此类未定义 IdClass

Tapestry 5.3.8 + Jetty + Hibernate 4.3.5 + XAMPP 1.8.3 - IdClass 使用(派生)实体,为啥在尝试合并时它们会分离?

使用 @IdClass 的 JPA 多对多与额外列在 springTestContextPreparation Hibernate AnnotationException“没有持久的 id 属性”中失

如何正确映射与@IdClass 的多对一关系?

hibernate ——联合主键

无法使用 @IdClass 转换实体中的请求元素