您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Java >> Hibernate多对一单向关联问题,求助~

Hibernate多对一单向关联问题,求助~

来源:网络整理     时间:2016/6/26 3:40:18     关键词:

关于网友提出的“ Hibernate多对一单向关联问题,求助~”问题疑问,本网通过在网上对“ Hibernate多对一单向关联问题,求助~”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: Hibernate多对一单向关联问题,求助~
描述:

本帖最后由 wanghaoxyq 于 2014-08-26 13:21:08 编辑

hibernatejavaweb

项目里面有Product和Factory两个类,各自的属性如下:
public class Factory {
	private int factoryId;
	private String factoryName;
public class Product {
	private Integer id;				//唯一性标识
	private String name;			//产品名称
private Double price; //产品价格 private Factory factory; //生产商
其它的get set方法都省掉了。 然后,Product.hbm.xml文件里factory的映射如下:

在使用Hibernate时,获取对象语句如下:
session = HibernateInitialize.getSession();
			session.beginTransaction();
			Product product = (Product)session.get(Product.class,new Integer("1"));
System.out.println("产品名称:"+product.getName());
System.out.println("产品价格:"+product.getPrice()+"元"); System.out.println("生产商:"+product.getFactory().getFactoryName()); session.getTransaction().commit();
但是报错。理了理思路,是在调用session.get方法的时候,Product的配置文件里的factory属性对应的字段不存在。 即不存在product.factoryid这个字段。但是已经设置了product.factory字段的外键是factory.factoryid。这里需要怎么解决呢? 求帮助!
解决方案1:

配置没问题,关键是你的表建对没有。 Product表中是否有factory_id这一列。

解决方案2:

只要你配置好了,这样写是不会出错的。你理了理之后的思路是不对的,关联映射是根据配置决定的,session.get本身就是立即加载,不存在有没有的问题。你把实体的Integer改成int试试,代码这样:  Product product = (Product)session.get(Product.class,1);


以上介绍了“ Hibernate多对一单向关联问题,求助~”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2073628.html

相关图片

相关文章