问题标签 [toplink-essentials]

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 回答
1033 浏览

java - 使用 toplink 基本查询提示时指定查询超时

对于 glassfish v2,我已经在网络上进行了搜索,但在使用 TopLink 基本查询提示时,我无论如何都找不到指定查询超时。我们有另一种选择来迁移到 EclipseLink,但这是不可行的。

已经尝试过 http://forums.oracle.com/forums/thread.jspa?threadID=974732&tstart=-1中的解决方案, 但似乎可以设置超时值的 DatabaseQuery 实际上是针对 Toplink,而不是 TopLink 必不可少的。

除了查询提示之外,我们还有其他方法来指示 JDBC 驱动程序获取此超时值吗?我需要基于查询而不是基于系统(这只是为了更改 DISTRIBUTED_LOCK_TIMEOUT 的值)

0 投票
1 回答
1057 浏览

java - 为什么 JPA 注入不适用于 @PersistentUnit

问题仍在继续(未创建 struts 2 bean) 我在 Tomcat 下的非常简单的 Web 应用程序中使用 struts2 + toplink。在页面上我想使用迭代标签。这就是为什么我声明了一些工厂(SomeFactory)来解析实体(Entity)的集合。每篇文章: http: //download-uk.oracle.com/docs/cd/B32110_01/web.1013/b28221/usclient005.htm#CIHCEHHG 我唯一需要的是声明:

怎么了?可能我错过了 web.xml 中的某些内容吗?如何为 Web 应用程序预初始化 toplink 以允许注入发生?

0 投票
1 回答
5678 浏览

exception - (JPA/Toplink)网络错误 IOException:地址已在使用中:连接

我有一个过去可以工作的 JPA 项目。这个月,我在我的数据库中添加了一些数据。当我运行通常的工作(我曾经在前几个月运行)时,我收到了这个错误:

异常 [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.DatabaseException 内部异常: java.sql.SQLException: 网络错误 IOException :地址已在使用:连接错误代码:0

我通过打印计数器检查了包含我正在调用的大多数方法的 LocalPersistenceFacade,我在那里得到了关闭和打开的连接的确切数量:457。然后我的工作崩溃了。通常,它应该到 601 而不是 457。

在数据库方面,没有与可能的崩溃相关的信息。一切似乎都是正确的,但我的 java 代码说的是别的东西。

请问有人知道吗?

问候,让

0 投票
2 回答
1761 浏览

jpa - 如何添加 c3p0 或 DBCP 连接池?

您能否向我解释一下如何将独立的 c3pO 或 DBCP 连接池添加到我的基于 toplink 的 JPA 项目中?

我有一个 persistence.xml 文件,每次我想查询数据库时,我都会这样做:

EntityManagerFactory emf = this.getEntityManagerFactory();

// 肯定是用persistence.xml设置工厂的

EntityManager em = emf.createEntityManager(); ...

我在哪里建立我的外部连接池管理器和 Toplink 之间的桥梁?欢迎任何想法或链接。

问候,让

0 投票
1 回答
175 浏览

java - 关于 Toplink 获取策略

我正在为一个 Swing 项目工作,使用的技术是带有 Toplink 必需品的 netbeans,mysql。

我面临的问题是在调用外键属性的 getter 集合时插入发生后实体对象没有得到更新。

例如:我有 2 个表 Table1,Table2。我有 sno 列,id 列作为 Table1 中的主键,并且是 Table2 中的外键。通过 find 方法,我只是获得了特定的 sno 对象(存在于表 1 中)设置一些持久化到 table2 的值并提交了事务。

当我通过 find 方法选择相同的 sno 对象并通过 bean 的 getTable2Collection() 从 Table2 获取它的集合时(因为它已经由 toplink 必需在 bean 中创建)我无法获得最新添加的记录,除了所有其他显示它的记录。在我关闭应用程序并打开它之后,新记录会在通过上述过程调用相同的 sno 时得到反映。

我开始知道这是一种懒惰的获取,应该有一些方法可以改变获取策略,以使实体对象随着更改而更新。所以请在这方面帮助我。

问候,

昌都

0 投票
5 回答
23944 浏览

java - 默认情况下,实体是否缓存在 jpa 中?

我将实体添加到我的数据库中,它工作正常。但是当我检索列表时,我得到了旧实体,我添加的新实体在我取消部署应用程序并再次重新部署之前不会显示。这意味着我的实体是否默认缓存?但是,我没有对我的 persistence.xml 或任何此类文件中的缓存实体进行任何设置。

我什至尝试调用flush()、refresh() 和merge()。但它仍然只显示旧实体。我错过了什么吗?请帮我。

0 投票
1 回答
444 浏览

spring - JPA IndirectSet 更改未反映在 Spring 前端

编辑:解决了,但我不知道现在有什么不同。如果有人能解释发生了什么不同的事情,我将不胜感激。

它现在的工作方式是只合并父项,而不是子项,如下所示:

现在,它似乎正在工作,但我不太明白为什么这会奏效,而我之前的尝试却没有。

原始尝试/问题:

我遇到了 Spring JPA 和 IndirectSets 的问题。我有两个实体,Parent 和 Child,定义如下。我有一个 Spring 表单,我正在尝试创建一个新的 Child 并将其链接到现有的 Parent,然后将所有内容都反映在数据库和 Web 界面中。发生的事情是它被放入数据库,但 UI 似乎不同意。

在 OneToMany 关系中相互链接的两个实体如下所示:

当然,它们每个都有各种简单的属性。现在,问题是当我从 Spring 界面编辑这些简单属性时,一切都运行良好。我可以保留这些类型的新实体,并且它们会在使用 JPATemplate 进行查找时出现,例如,所有父母 (getJpaTemplate().find("select p from Parent p")) 或单个实体的 ID 或另一个财产。

我遇到的问题是,现在,我正在尝试通过父页面的链接创建一个链接到现有父的新子。这是控制器的重要部分(请注意,我已将 JPA foo 放在控制器中以使其更清晰;实际的 JpaDaoSupport 实际上在另一个类中,适当分层):

就像我说的那样,我可以浏览表格并为孩子填写新值——甚至不显示父母的详细信息。当它返回到控制器时,它会通过并将其保存到底层数据库,但接口永远不会反映它。一旦我重新启动应用程序,它就在那里并适当地填充。

我能做些什么来解决这个问题?我试图调用额外的合并,尝试刷新(这给出了一个事务异常),除了编写我自己的数据库访问代码之外的一切。我已经确保每个类都有一个适当的 equals() 和 hashCode(),有完整的 JPA 调试以查看它是否进行了适当的 SQL 调用(它似乎没有对子表进行任何新的调用)并逐步通过调试器(正如预期的那样,它都在 IndirectSets 中,并且在保存和显示父对象之间,对象采用新的内存地址)。我的下一步是什么?

0 投票
1 回答
332 浏览

java - JPA 为集合中的已删除项目返回 null

这可能与我几天前的问题有关,但我什至不确定如何解释这部分。(这是完全不同的亲子关系。)

在我的界面中,我有一组属性(Attribute)和有效值(ValidValue),每个属性都是一对多的关系。在 Spring MVC 前端,我有一个页面供管理员编辑这些值。提交后,如果这些字段(作为 <input> 标记)中的任何一个为空白,我将删除 ValidValue 对象,如下所示:

问题是,虽然数据库得到了适当的更新,但下次我查询 Attribute 对象时,它们会在其 ValidValue 集中返回一个额外的条目——一个空值,因此,下次我遍历这些值时显示,它在中间显示一个额外的空白值。我已经确认这发生在合并或查找时,在“执行查询 ReadObjectQuery(entity.Attribute).

这是我用来修改数据库的代码(在 ApplicationDataService 中):

以下是实体类的相关部分:

0 投票
1 回答
575 浏览

java - 使用 Geronimo 检索“entityManagerFactory”失败

我刚刚开始学习Spring框架。我当前的目标是通过 Geronimo 服务器上的 JPA(TopLink** 提供程序)从我的 bean 访问数据库。但是我无法克服获取 entityManagerFactory 的问题。

我得到的例外:

java.lang.IllegalStateException:ClassLoader [org.apache.geronimo.kernel.config.MultiParentClassLoader] 不提供“addTransformer(ClassFileTransformer)”方法。指定自定义 LoadTimeWeaver 或使用 Spring 的代理启动 Java 虚拟机:-javaagent:spring-agent.jar

我访问它的方式:

如果有人可以在不使用“-javaagent:spring-agent.jar”选项的情况下帮助我,我将不胜感激。


寻找解决方案。第一次尝试。

遵循“axtavt”建议,我找到了为 Tomcat 上的 Web 应用程序指定特殊类加载器的示例。它为此目的使用context.xml文件。尽管我的 Geronimo 使用 Tomcat,但我没有成功实现context.xml。正如在下一 本手册中所说, Geronimo的context.xml的替代方案是geronimo-tomcat.xml,但它的语法不提供更改类加载器的任何可能性。我还需要帮助!


0 投票
3 回答
2397 浏览

jpa - JPA 使用对象图缓慢插入

我正在尝试使用 JPA 对大型对象图进行级联保存。例如(我的对象图有点大但足够接近):

所以我试图坚持拥有100多个B的集合的A。代码只是

问题是,它很慢。我的保存大约需要 1300 毫秒。我查看了正在生成的 SQL,它的效率非常低。像这样的东西:

目前使用 toplink 作为持久性提供程序,但我也尝试过 eclipselink 和 hibernate。后端是oracle 11g。问题实际上是如何将 sql 放在一起。这些操作中的每一个都是离散而不是批量完成的,所以如果我的应用服务器和数据库服务器之间的网络延迟甚至为 5 毫秒,那么执行 200 次离散操作会增加 1 秒。我已经尝试增加序列的 allocationSize ,但这只会有所帮助。我还尝试将直接 JDBC 作为批处理语句:

对于我的数据模型,直接 JDBC 批处理大约需要 33 毫秒。Oracle 本身为 100 多个插入花费了 5 毫秒。

有没有让 JPA(我现在被 1.0 卡住......)在不深入研究供应商特定的东西(如休眠批量插入)的情况下运行得更快?

谢谢!