Struts2 获取对象对应的外键对象报错:ognl.NoConversionPossible

Hibernate 做棵大树 6年前 (2018-10-28) 2537次浏览 0个评论

在 SSH 项目中定义了两个有关联的类,分别是公司和项目,其中公司和项目是一对多的关系,一个公司可以存在多个项目,然后在获取相关属性时候,会报错了:ognl.NoConversionPossible。

那先把代码奉上,然后再说一下为什么会报这个错误:

项目实体类:

package com.test.beans;

/**
 * BidProject entity. @author MyEclipse Persistence Tools
 */

public class Project implements java.io.Serializable {

	// Fields
	private String id;
	private Company company ;

	// Constructors

	/** default constructor */
	public BidProject() {
	}

	// Property accessors

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

	public void setId(String id) {
		this.id = id;
	}
	public Company getCompany () {
		return this.company ;
	}

	public void setCompany (Company company ) {
		this.company = company ;
	}
}

}

公司实体类:

package com.rocky.beans;


/**
 * Corporation entity. @author MyEclipse Persistence Tools
 */

public class Corporation implements java.io.Serializable {

	private String id;	//ID 生成器生成 ID 2
	private String name;	//前台自动填充 1
        public String getId() {
		return this.id;
	}

	public void setId(String id) {
		this.id = id;
	}
        public String getName() {
		return this.name;
	}

	public void setName(String name) {
		this.name = name;
	}
}

页面代码:

<s:iterator value="#session.allBidList" id="allBid">
    <s:property value="#allBid.getCorporation().getName()"/>
</s:iterator>

这是为什么呢? 因为在Hibernate反向生成 .hbm.xml 文件时,其中的 lazy 属性的问题,它默认是打开的,所以就会出现这种情况。

至于如何解决,则是找到 .hbm.xml 文件下对应的属性映射,然后修改其属性值

<many-to-one name="corporation" class="com.rocky.beans.Corporation" <span style="font-size: 12pt;"><strong>lazy="false"</strong></span> fetch="select">
         <column name="tenderer" not-null="true" />
 </many-to-one>

应在<many-to-one>标签中加入lazy="false"属性,表示不使用懒加载方式即可解决问题。


做棵大树 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Struts2 获取对象对应的外键对象报错:ognl.NoConversionPossible
喜欢 (1)
[欢迎投币]
分享 (0)
关于作者:
一个整天无所事事的,有时候忽然热血的孩子
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
Ads Blocker Image Powered by Code Help Pro

靓仔,把广告拦截插件关了吧~ 给孩子两毛钱广告费吧~

我们检测到您使用了广告屏蔽插件,建议您把 广告屏蔽插件关闭 或者 添加本站为白名单 即可

个人网站运营不易,感谢体谅啊~

打赏博主会让我更加开心啦~(。・∀・)ノ

Powered By
100% Free SEO Tools - Tool Kits PRO