2012-04-24 166 views
1

我使用Hibernate来插入一些行,但我不知道如果我做得很好......休眠插入外键

我enity有一个外键,我知道它的ID,我可以”不知道我是否需要引用的对象或只是id。 我怎么有办法做到这一点,因为它只是为插入获取引用的对象是没有用的。

我想这样做:

en=new MyEntity(); 
en.setForeignVal("1"); 

看来我不得不这样做:

en=new MyEntity(); 
refObj=getSession().get(RefObject.class, "1"); //unuseful 
en.setForeignVal(refObj); 

回答

2

Hibernate提供了一个特殊的方法,用于该用途的情况下 - load()。它返回给定id的代理而无需访问数据库:

en.setForeignVal(getSession().load(RefObject.class, "1")); 
+0

谢谢......动词“负荷”这正是我不想:-) – Tobia 2012-04-24 15:44:37

+0

只是一张纸条,上面负载()将返回初始化实体的情况下,a)您的映射中的整个类的lazy =“false”b)您使用字节码增强机制而不是代理。 – 2012-04-24 16:24:05