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 的错误。

转载于:https://www.cnblogs.com/htsg/p/9769978.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值