关于hibernate反向生成实体类的问题-没有主键的表映射

本文探讨了在Spring+Spring MVC+Hibernate框架下,遇到无主键表反向生成实体类时查询结果为空的问题。当表中字段为空导致复合主键失效,查询失败。解决方法是修改hibernate映射文件,将可能导致空值的字段从复合主键移出,并在实体类中添加相应属性的get/set方法,确保查询正常。
摘要由CSDN通过智能技术生成

问题描述:在使用hibernate反向工具的时候,生成的无主键实体类,在查询时结果为空的问题

特注:(本篇文章是针对于那些使用的Spring+Springmvc+hibernate开发框架的同学们的)

通常情况下,使用hibernate反向工具的时候,系统并不会提示你有哪几个表无主键,而是直接将无主键的对应表对应生成两个class文件(分别是xxx.class和xxxid.class  [xxx : 对应的表名]),xxx.class中会给你无主键的表定义一个唯一的Id,然后通过映射文件将表中的所有字段整合为一个复合主键以供hibernate使用。

1.xxx.class示例:

/**
 * BlTmsRecipientsTab generated by hbm2java
 */
public class BlTmsRecipientsTab implements java.io.Serializable {

	private BlTmsRecipientsTabId id;

	public BlTmsRecipientsTab() {
	}

	public BlTmsRecipientsTab(BlTmsRecipientsTabId id) {
		this.id = id;
	}

	public BlTmsRecipientsTabId getId() {
		return this.id;
	}

	public void setId(BlTmsRecipientsTabId id) {
		this.id = id;
	}
	
	public String getObjectId(){
		return this.id.getObjectId();
	}
	
	public void setObjectId(String objectId) {
		this.id.setObjectId(objectId);
	}
	
	public Date getModiDate() {
		return this.id.getModiDate();
	}

	public void setModiDate(Date modiDate) {
		this.id.setModiDate(modiDate);;
	}

	public String getModiUser() {
		return this.id.getModiUser();
	}

	public void setModiUser(String modiUser) {
		this.id.setModiUser(modiUser);;
	}

	public BigDecimal getDepartmentId() {
		return this.id.getDepartmentId();
	}

	public void setDepartmentId(BigDecimal departmentId) {
		this.id.setDepartmentId(departmentId);;
	}

	public BigDecimal getSubcompanyId() {
		return this.id.g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值