如何保存Hibernate中外键属性
时间:2008-06-22 09:35:26
来源:论坛整理 作者: 编辑:chinaitzhe
String hql="FROM XtSb WHERE id='" dbqxlxAddForm.getSb() "'";
List l=baseDataBiz.find(hql, 1, 1);//查询出外键指向的对象
XtSb xtSb=(XtSb) l.get(0);//取出外键对应的对象属性
ylGz.setXtSb(xtSb);//传递给实体类外键的对象属性
baseDataBiz.save(ylGz);// 保存数据
我也想直接在实体类的对象属性的set方法中查询出该对象。这样直接调用实体类的set方法就可以得到外键对应的对象了
public void setXtSb(String id) {
String hql="FROM XtSb WHERE id='" dbqxlxAddForm.getSb() "'";
List l=baseDataBiz.find(hql, 1, 1);//查询出外键指向的对象
XtSb xtSb=(XtSb) l.get(0);//取出外键的对象属性
this.xtSb = xtSb;
}
但是由于使用的ssh框架,数据访问层不能直接在并中实例化。假如使用
WebApplicationContext wc = this.getWebApplicationContext();
又必须要继续DispatchActionSupport。在bean中继续DispatchActionSupport很不科学。所以也没有使用这个方案。
我想既然查询的时候,实体类可以自动查出外键对应的对象。实体类中应该有方法通过id查出外键对应的对象。但是我找了很久都没有找到。所以就上来请教各位了。
不知道有没有这样的方法?
保存的时候外键大家又是如何处理的?
网友回复:貌似你的设计好希奇,你的需求就是级联保存吧.
你的对象没关联吗,这个和ssh也没关系啊.
网友回复:你要多方级联保存一方还是要一方级联保存多方.
网友回复:不是级联保存,而是保存实体类中的外键属性,该属性在表中是一个id,在实体类中是id对应的类。也就是类关联。
网友回复:有外键,那一定是多方了。
网友回复:为什么不直接关联上呢,不理解你为什么这么干,为什么不引用对象靠配置文件关联呢.
但是要实现你的行为也是可以的,但不是放到setXXX方法里面而是放到getXXX方法里面.不用的话也就不用查了.
网友回复:不靠配置文件来关联,hibernat还能用吗?假如使用jdbc我就用不着考虑对象属性的问题啦,直接设置一个外键的属性就搞定啦。要使用hibernat就只能在它的框架内解决问题。
网友回复:用对象!
关键字:保存,Hibernate,中外,属性,
下一篇:下面没有链接了











文章评论
共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面