在我的web应用中使用Spring2和Apache OJB时,我遇到了一个问题。
我使用具有2个外键属性的OJB引用描述符。我有一个对象A(父对象)和对象B(引用对象)。问题是,对于一个物体A,可能存在也可能不存在物体B。
在对象A没有对象B的情况下,对象B似乎是实例化的(通过Spring?)不管怎么说。但是,我无法访问对象B的成员。
每当我测试对象B是否== null时,即使数据库中没有匹配值,它也总是返回false。
由于这个对象从不为空,我想我可以像这样测试对象的成员:
if( objectb.getDocumentNumber == null) { return false;}
但是,我在jsp中得到了一个异常:
javax.servlet.jsp.el.ELException: An error occurred while getting property
"documentNumber" from an instance class
org.sample.pojo.Objectb$$EnhancerByCGLIB$$78022a2调试器在创建objectB时会出现以下异常:
com.sun.jdi.InvocationException occurred invoking method.我猜测引用描述符必须是1:1+关系,而不是1:0+关系。我想知道是否应该将属性'auto-retrieve‘设置为false,然后按照指示使用PersistenceBroker.retrieveAllReferences(Object obj);方法。然而,这个方法的返回值是'void',所以我猜Spring以某种方式为我创建并设置了引用类。(让我回到我遇到的相同问题上。)
我需要一种方法来测试引用对象是否首先存在。如果没有,就不要调用这个retrieveAllReferences方法,但我不知道如何调用。
我说的全错了吗?引用描述符不允许1:0关系吗?有什么办法解决我的问题吗?
非常感谢您的建议!
发布于 2010-04-27 06:59:25
我想通了。为了防止对其他人有帮助,我设置了proxy = false。
这对我是有效的,因为通过将它设置为false,它不会创建临时引用对象,并且我可以用它测试null。
不管怎样,谢谢你。
https://stackoverflow.com/questions/2702707
复制相似问题