问题标签 [activejdbc]

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

datasource - 带有 C3P0 数据库连接的 Activeweb/ActiveJDBC

我正在尝试将 ActiveWeb/ActiveJDBC 连接配置为使用 C3P0 进行连接池。

我知道 Javalite 提供的文档说每个事务将是一个打开/关闭的连接,但也提到我们可以通过以下方式打开数据源:

这使我认为可以通过包含在 AppControllerConfig 中来拦截连接打开/关闭机制:

...其中 DBConnectionFilterTest 是扩展 DBConnectionFilter 的自定义类,它覆盖打开和关闭连接的之前/之后行为。数据源在构造函数中使用 ComboPooledDataSource 进行配置。

我很好奇是否有人对此配置有任何见解,或者是否成功地将 C3P0 集成到 activeweb/activeJDBC?

到目前为止,我得到的最远的结果是让 C3P0 启动。我在会话监视器中看到了 5 个连接,但 activeweb 在执行事务时仍会启动一个新连接。C3P0 池没有移动。

0 投票
1 回答
263 浏览

java - ActiveJDBC 预加载多态父节点

我无法急切地加载子类的多态父类。include 语句似乎没有任何区别。

儿童班:

家长班:

应该急切返回子+父的查询:

最终,我试图加快以下操作:

我已经对这些操作进行了基准测试,无论是否在 Child.where() 方法上使用 .include(ParentRequest.class) ,上述操作似乎都需要大约 67 毫秒。

非常感谢任何见解或帮助。

注意:我知道孩子只有一个父母。在不久的将来,它将有几个。

编辑: 由于某些原因,反转查询产生了更快的结果。也就是说,如果我搜索 ParentRequest 并包含 Child,则操作会快得多,而不是查找 Children 并包含 ParentRequest。请注意,我专门做了一个 findBySql 来将结果中的子表连接到 parent_request 表。下面我留下了查询的细节。

0 投票
1 回答
98 浏览

datasource - 继承类的模型检测 - ActiveWeb

我继承了模型类:

我正在尝试从一个基础项目扩展到几个子项目。每个项目中的用户将有许多相似的基本属性,但只有一两个自定义属性。我希望我能以这种方式进行扩展,所以当关于基类的错误/更新出现时,我只需要对基类进行更新。或者,我必须在多个项目中重复代码。我也计划将其扩展到其他课程。使用 app.controllers 没有问题。

我的基类当然会很好地启动。在我的扩展课程中,我正在执行:

...然后将爆炸的 WAR 移动到我的 Jetty webapp 中。每当我点击扩展模型时,我都会得到以下堆栈跟踪:

是否可以以这种方式扩展检测模型?

0 投票
2 回答
1493 浏览

java - 在 ActiveJDBC 中模拟 findAll() 方法进行单元测试

我在我的项目中使用 ActiveJDBC,它有一个模型ScriptRule。请找到随附的代码片段。

我正在使用 PowerMock 编写单元测试。我在测试该方法时遇到了问题RuleEvaluatorProvider.getRuleEvaluatorClient()。该findAll()方法返回一个org.javalite.activejdbc.LazyList<T>对象。

因此,aPowerMockito.when(ScriptRule.findAll()).thenReturn();不起作用,因为我只能创建一个 utils 列表。有没有人有使用 ActiveJDBC 进行此类单元测试的经验。

请帮忙。

0 投票
1 回答
171 浏览

activejdbc - 在 activejdbc 1.4.12 中无法再检索 db Model getId()

我使用的是activejdbc 1.4.9,下面的示例代码运行得很好

由于我升级到 1.4.12,当 save 插入新记录时,client.getId() 总是返回 null。即 id 没有得到刷新。

有没有人也注意到这一点?我是否必须使用此版本做任何不同的事情来获取新创建的 ID?

0 投票
0 回答
38 浏览

activejdbc - 使用空值更新数据库模型列时出现问题

我最近升级到了 activejdbc 1.4.12,并且在使用空值更新记录时注意到了不同的行为。

请检查以下示例:

显然,从 1.4.12 版本开始,只有当我明确调用 set(address, null) 时,地址才会被更新为 null。还有谁有相同的问题吗?这个对吗?

0 投票
1 回答
776 浏览

java - IntrumentModels 的任务:模型类被冻结

我使用 Spark 框架开始了一个小项目,我选择了 ActiveJDBC 作为它的 ORM,它使用 Gradle 来构建所有的东西。

(更新,它使用的是 ActiveJDBC 1.4.12)

这是我的build.gradle文件:

我有一个简单的模型来访问所有很酷的模型方法:

当我尝试构建项目时,问题就开始了:

0 投票
1 回答
81 浏览

java - 如何从没有模型的表中获取数据?

介绍

我正在做一个项目,我遇到了一个奇怪的用例,可能 ActiveJDBC 不适合,我保证耐心,因为这个项目中的许多事情不在我的控制范围内:

我有 10 到 15 个小型/中型数据库(每个约 30 个表,最多 40000 条记录),其中大多数共享 15 个表的“核心”模式,但同时它们对于每个数据库都有一些独特的特定表,它们是全部由我无法访问的遗留系统维护。

目标

我们(我和一些同事)需要将数据集中在一种“复杂的数据仓库”中。不幸的是,出于更高的原因,我不能使用除 ActiveJDBC 之外的任何技术以及需要我们编写的所有技术(我知道使用 MongoDB 和/或 Liquibase 可以更好地处理这件事)

我们已经处理了数据库之间的连接,并且项目本身在很大程度上进展顺利。处理所有数据库共享的核心模式的程序部分已经“工作”,但是我们遇到了它们唯一的表的问题。

我从运行时进行的查询中获取数据库中的所有表名(也不是我的选择)。我们最好将班级的数量保持在最低限度

最后我的问题

我可以创建一个通用/动态模型或类似的东西,可以在运行时保存来自查询的数据吗?就像是:

或者

我知道以这种方式使用模型很奇怪,但如果我们能以这种方式获得表数据,那将大大简化我们的生活。

我们将主要使用这种模型来从表中获取“原始”数据并满足接口,因此现在无需担心每个表的关系。

提前致谢

@Edit:感谢 Igor 提供了这个很棒的工具!

我们(几乎)做到了!谢谢你。我们对“核心模式”使用了类似的方法,但你有点给了我们一些启发。

正如我评论的那样:

我们需要像使用模型一样使用 Base.findall() 的结果,这可能吗?

0 投票
1 回答
64 浏览

activejdbc - 无法在 IntelliJ 中构建测试 ActiveJDBC 项目

前面的底线:这是我在 IntelliJ 中遇到的错误:

Failed to execute goal org.javalite:activejdbc-instrumentation:1.4.2:instrument (default-cli) on project hsdart: Failed to add output directory to classpath: org.javalite.instrumentation.InstrumentationException: javassist.NotFoundException: getClassName(..) is not found in net.hintsight.dart.models.ExtractDescriptor -> [Help 1]

构建工作来自 CLI,而不是来自 IntelliJ。这是我添加到测试版本的步骤:

org.javalite:activejdbc-instrumentation:1.4.2:instrument

其他重要的位:

  • IntelliJ 版本:15.0.2
  • Maven 版本:3.3.9
  • Java版本:1.8.0_101
  • ActiveJDBC 版本:1.4.12

IntelliJ 的完整输出:http: //pastebin.com/wfpE5umK

0 投票
1 回答
124 浏览

java - ActiveJDBC 和 Java 泛型导致

我有以下两个类,其中 Document 扩展了一个提供辅助函数的 Abstract 类,其中一个是“find”方法,它基于一些简单的逻辑构建查询以查找记录。

当我运行此代码并在 Document 上调用“findExistingObject”方法时,我收到此异常:

线程“main”org.javalite.activejdbc.InitException 中的异常:无法确定模型类名称,您确定模型已被检测吗?

我已经完全确定我已经对课程进行了检测。当我将代码从 AbstractTable 移动到 Document 时,一切正常。我希望有人可以提供一些建议或帮助,这可能会告诉我我做错了什么。

提前致谢。