问题标签 [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.
java - OJB / Oracle XE sql 调试显示问题
我有一个 Java 应用程序,并使用 OJB 作为我的 ORM 技术。我在本地安装了 Oracle XE 以进行开发。问题是当我需要调试问题时,我喜欢查看 SQL 输出。下面是我可以通过 Oracle XE 中的“Top SQL”界面查看的 SQL 示例:
问题是我想看到真正的价值而不是“:1”。我似乎找不到如何配置它。我知道真正的价值是有效的,因为应用程序在大多数情况下都按预期响应(因此我正在处理的错误)。
谢谢,杰
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 关系?有什么办法可以解决我的问题吗?
非常感谢您的建议!
sql - OJB ReportQuery 加入问题
给定三个表:
我正在尝试使用 OJB 表示以下 SQL 查询(不使用 QueryBySQL):
到目前为止,我的 java 代码如下所示:
但我不确定如何加入 Age_Ranges 表,以便我可以在 Age_Range_Label 列上进行分组。
有什么见解吗?
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 属性。
也许这是问题的一部分??
这是堆栈跟踪以防万一-
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)
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 试图将此号码设置为扩展表。
是否有人对文档的扩展属性有任何经验,可以帮助阐明这一点?
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);
spring - 需要哪些 Oracle JDBC 或侦听器配置来支持旧应用程序?
需要再运行一次遗留应用程序(通过 Hibernate/Spring + OJB 的 Jetspeed 门户)。如果不进行一些配置更改,它将无法针对 Oracle 12c 数据库运行。
它使用 Hibernate + OJB 大约 2008-9。通过 Oracle JDBC 大约 Oracle-1.4.jar
选项
配置当前 Oracle 12c 实例以显式提供其最旧的可能向后兼容性设置。
配置旧版 JDBC 驱动程序以转发不超过(例如)10g 的兼容性信息。
阅读 Jetspeed、Hibernate、OJB 代码,以确定此代码所需的精确配置,以便与 Oracle 10g 一起使用,并放弃对自动检测的智能尝试。
只需运行一个较旧的 Oracle 实例并将所有已配置的数据库描述符重新指向它即可。
本题针对(1)、(2)。假设首先询问 stackoverflow 比创建 Oracle 支持 TAR 更快,比 Oracle 社区请求更广泛的受众,并且比我搜索 Jetspeed/Hibernate/OJB 代码或与 DBA 澄清 (4) 的要求更快。
java - OutOfMemoryException 与 Apache ObJectRelationalBridge
尝试使用 OJB 持久性代理加载对象列表时,我遇到了 OutOfMemoryException。数据库(sybase)中有超过 20000 个对象。我试图将返回列表的大小限制为 200。但问题仍然存在。由于 OJB 不支持分页,有没有办法解决这个问题?