欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Hibernate 中的 idclass mapping 问题

程序员文章站 2022-05-15 20:31:37
关于出现 idclass mapping 运行错误 @IdClass 注释通常用于定义包含复合键id的Class。即多个属性的关键复合。 @IdClass(CountrylanguageEntityPK.class) 则CountrylanguageEntityPK如下所示: 使用注解 @IdCla ......

关于出现 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都添加进去怎么写?有知道的老铁请评论告知,在此感谢。