问题标签 [ojb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
287 浏览

java - OJB / Oracle XE sql 调试显示问题

我有一个 Java 应用程序,并使用 OJB 作为我的 ORM 技术。我在本地安装了 Oracle XE 以进行开发。问题是当我需要调试问题时,我喜欢查看 SQL 输出。下面是我可以通过 Oracle XE 中的“Top SQL”界面查看的 SQL 示例:

问题是我想看到真正的价值而不是“:1”。我似乎找不到如何配置它。我知道真正的价值是有效的,因为应用程序在大多数情况下都按预期响应(因此我正在处理的错误)。

谢谢,杰

0 投票
1 回答
2949 浏览

java - OJB 引用描述符 1:0 的关系?我应该将自动检索设置为 false 吗?

在我的 Web 应用程序中使用带有 Spring 2的Apache OJB时遇到问题。

我正在使用具有 2 个外键属性的 OJB 引用描述符。我有一个对象 A(父)和对象 B(引用对象)。问题是,对于对象 A,可能存在对象 B,也可能不存在对象 B。

在没有对象 B 与对象 A 一起使用的情况下,对象 B 似乎无论如何都被实例化了(通过 Spring?)。但是,我无法访问对象 B 的成员。

每当我测试 Object B == null 时,即使数据库中没有匹配的值,它也总是返回 false。

由于这个对象永远不会为空,我想我可以像这样测试对象的成员:

if(objectb.getDocumentNumber == null) { return false; }

但是,我在jsp中遇到了一个异常:

并且在调试器中创建objectB时出现此异常:

我猜测引用描述符必须是 1:1+ 的关系,而不是 1:0+ 的关系。我想知道是否应该将属性“自动检索”设置为 false,然后使用 PersistenceBroker.retrieveAllReferences(Object obj); 按照指示的方法。然而,这个方法的返回值是'void',所以我猜测Spring会以某种方式创建并为我设置参考类。(让我回到我遇到的同样问题。)

我需要一种方法来首先测试引用对象是否存在。如果没有,请不要调用此retrieveAllReferences 方法,但我不知道如何。

我对这一切都错了吗?引用描述符是否不允许 1:0 关系?有什么办法可以解决我的问题吗?

非常感谢您的建议!

0 投票
0 回答
441 浏览

sql - OJB ReportQuery 加入问题

给定三个表:

我正在尝试使用 OJB 表示以下 SQL 查询(不使用 QueryBySQL):

到目前为止,我的 java 代码如下所示:

但我不确定如何加入 Age_Ranges 表,以便我可以在 Age_Range_Label 列上进行分组。

有什么见解吗?

0 投票
1 回答
891 浏览

spring - Spring Bean 继承和空指针异常问题

我正在向业务对象添加一个新 bean。

为此,我首先将成员添加到 PurchaseOrderDocument 类,方法是为其分配以下内容:

然后我当然给它分配了通常的getter和setter,如下所示:

好的,这一切都发生在我的 Java 类中。

所以现在,在 DataDictionary 目录中名为 PurchaseOrderDocument.xml 的相应 XML 文件中,我添加了以下 bean 定义 -

接下来,我需要创建 OJB 映射,因此在 ojb.xml 文件中我添加了以下 XML 代码行 -

我还在相应的 TABLE 中创建了 CURR_CM_ACTION_STATUS 列 - 所以我双重和三次检查名称是否匹配。

对 -

所以问题来了:在我的 PurchaseOrderDocument 中,我有一个触发器,它等待一个事件,该事件将触发我在上面为此 bean 指定的“Setter”代码。奇怪的是,我编写的这段代码正在生成一个 NULL 指针异常。

我已将问题指向以下行 -

如果我更改以下行:

(Note 是一个类,noteText 是我最初在这个 bean 中继承的成员变量 - 但我不想再从 Note 类继承,我希望它在我的 PurchaseOrderDocument 类本地。无论如何,当我在那里有 Note-noteText,我没有得到空指针异常,而是在我的触发器调用“set”方法之后,没有将任何内容写入数据库,顺便说一下是 ORACLE。)

因此,这就是我放弃继承的原因,相反我希望这个 bean 对这个类是本地的。

我的一位同事提到,也许 Spring 正在 FORM 中寻找这个 bean,因为我没有它 - 它正在呕吐......但我有疑问。

另请注意,我正在使用隐藏控件。当我添加 parent="AttributeDefinition" 文本时,我收到一条错误消息,指出我没有指定控件属性。因为,这个 bean 不是从 USER 输入获取它的内容,所以我指定了这个 HIDDEN CONTROL 属性。

也许这是问题的一部分??

这是堆栈跟踪以防万一-

0 投票
1 回答
930 浏览

java - IOException:套接字写入错误

在编辑一份报告时,我遇到了这个问题(所有其他报告都工作正常)不知道出了什么问题

org.apache.ojb.broker.PersistenceBrokerSQLException: * sql-statement 执行期间的 SQLException:

--一些sql语句(正确的一个)

  • 异常消息是 [Io 异常:软件导致连接中止:套接字写入错误]
  • 供应商错误代码 [17002]

---同时添加堆栈跟踪

  • 目标类是“com.dto.CurrentDTO”
  • 目标对象的PK是[currentId] at org.apache.ojb.broker.util.ExceptionHelper.generateException(ExceptionHelper.java:90) at org.apache.ojb.broker.util.ExceptionHelper.generateException(ExceptionHelper.java:256) ) 在 org.apache.ojb.broker.accesslayer.JdbcAccessImpl.materializeObject(JdbcAccessImpl.java:594) 在 org.apache.ojb 的 org.apache.ojb.broker.util.ExceptionHelper.generateException(ExceptionHelper.java:71)。 broker.core.PersistenceBrokerImpl.getPlainDBObject(PersistenceBrokerImpl.java:1504) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getDBObject(PersistenceBrokerImpl.java:1548) at org.apache.ojb.broker.core.PersistenceBrokerImpl.doGetObjectByIdentity( PersistenceBrokerImpl.java:1671) 在 org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(PersistenceBrokerImpl.java:1643) 在 org.apache.ojb.broker.core。DelegatingPersistenceBroker.getObjectByIdentity(DelegatingPersistenceBroker.java:357) at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByIdentity(DelegatingPersistenceBroker.java:357) at com.common.OJBUtil.findByPK(OJBUtil.java:104) at com.dao .AbsDAO.find(AbsDAO.java:55)
0 投票
1 回答
173 浏览

ojb - 扩展 Kuali Document 业务对象

我面临文档扩展属性的问题(尝试扩展文档表)。我在扩展表中创建了原始表的 PK (FDOC_NBR),并通过自定义原始表的 ojb 条目的外键将两者链接起来(作为“扩展”引用描述符)。我为扩展创建了 bo 和 dd 并自定义了原始文档的 dd 以添加新属性。在扩展的 BO 本身上,我还为 2 个新列 + 为 documentNumber 的 PK 列添加了成员​​(带有 setter 和 getter)。我还在文档的 jsp 中添加了新属性。相关模块定义已扩展为包括自定义 dd、ojb 等文件。

实际上,在打开文档时会显示新字段 - 但是,当尝试提交文档时(无论对新字段做任何事情)我都会收到错误 -

错误详情:OJB 操作;SQL []; ORA-01400: 无法将 NULL 插入 ("KFSTEM"."TEM_TRVL_ARRANGER_DOC_EXT_T"."FDOC_NBR") ;嵌套异常是 java.sql.SQLIntegrityConstraintViolationException: ORA-01400: cannot insert NULL into ("KFSTEM"."TEM_TRVL_ARRANGER_DOC_EXT_T"."FDOC_NBR")

似乎系统以某种方式尝试将 NULL 值插入扩展的 PK 字段,而不是实际的文档编号。尝试对此进行调试,在操作的路由方法中一直到 DocumentDaoOjb.save (尽我所能)我看到带有真实文档编号的文档被传递,所以问题似乎纯粹是ojb 试图将此号码设置为扩展表。

是否有人对文档的扩展属性有任何经验,可以帮助阐明这一点?

0 投票
0 回答
13 浏览

java - 使用 OJB 1.4 加载大量数据

我有一个Set<String> catNames包含大量猫名(~35K)的列表,我需要从数据库(Sybase)中加载所有这些Cat对象并将它们放入Map<String, Cat> cats:每行包含猫名和相应的猫对象。

知道我正在使用 OJB 1.4(它加载对象Cat及其所有依赖项,如Food... Clothes),这是加载如此庞大的猫列表的更好方法吗?

解决方案 1:每个 catName 一次访问数据库

cat = getCatByName(catName);然后cats.put(catName, cat);return cats;

解决方案 2:对所有这些猫名的数据库进行一次访问

cats = getCatsByNames(catNames);然后

for (Iterator iterator = cats.iterator(); iterator.hasNext();) { cat = (Cat)iterator.next(); cats.put(cat.getName(), cat); }

return cats;

PS: getCatsByNames用途criteria.addIn("catName", catNames);

0 投票
0 回答
50 浏览

spring - 需要哪些 Oracle JDBC 或侦听器配置来支持旧应用程序?

需要再运行一次遗留应用程序(通过 Hibernate/Spring + OJB 的 Jetspeed 门户)。如果不进行一些配置更改,它将无法针对 Oracle 12c 数据库运行。

它使用 Hibernate + OJB 大约 2008-9。通过 Oracle JDBC 大约 Oracle-1.4.jar

选项

  1. 配置当前 Oracle 12c 实例以显式提供其最旧的可能向后兼容性设置。

  2. 配置旧版 JDBC 驱动程序以转发不超过(例如)10g 的兼容性信息。

  3. 阅读 Jetspeed、Hibernate、OJB 代码,以确定此代码所需的精确配置,以便与 Oracle 10g 一起使用,并放弃对自动检测的智能尝试。

  4. 只需运行一个较旧的 Oracle 实例并将所有已配置的数据库描述符重新指向它即可。

本题针对(1)、(2)。假设首先询问 stackoverflow 比创建 Oracle 支持 TAR 更快,比 Oracle 社区请求更广泛的受众,并且比我搜索 Jetspeed/Hibernate/OJB 代码或与 DBA 澄清 (4) 的要求更快。

0 投票
0 回答
38 浏览

java - OutOfMemoryException 与 Apache ObJectRelationalBridge

尝试使用 OJB 持久性代理加载对象列表时,我遇到了 OutOfMemoryException。数据库(sybase)中有超过 20000 个对象。我试图将返回列表的大小限制为 200。但问题仍然存在。由于 OJB 不支持分页,有没有办法解决这个问题?