问题标签 [apache-cayenne]

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

apache-cayenne - Cayenne 在 commitChanges() 上执行 INSERT 查询

我有以下代码:

我首先commitChanges()提交所有查询。然后我清除了 Cayenne 的日志。在第二个commitChanges(),这显示在日志中:

信息:QueryLogger.logBeginTransaction:2013-07-10 07:37:11,214:---事务开始。信息:QueryLogger.logQuery:2013-07-10 07:37:11,218:插入scheduler_assignment到...信息:QueryLogger.logQuery:2013-07-10 07:37:11,241:删除scheduler_assignment ...信息:QueryLogger.logCommitTransaction: 2013-07-10 07:37:11,286:+++ 事务已提交。

我不明白为什么在我尝试删除时它会执行 INSERT 语句。谁能解释一下?谢谢!

0 投票
1 回答
187 浏览

xml - 如何 XML 绑定 Apache Cayenne 生成的类

首先,为这个冗长的问题道歉。

我有许多由 Cayenne 生成的类,如下所示。

我希望将其转换为 XML 模式,最好使用绑定表示法。首先要注意的是上面的代码是一个“_Form.java”文件,但还有一个生成的“Form.java”文件扩展了这个类,如下所示。我知道不应更改“_Form.java”(上图)。

本质上,我希望将它和其他一些类转换为 XML,就像我在下面这个简单的类示例中所做的那样,使用 xml 绑定。

我应该对生成的类进行哪些更改以生成以下 XML?

0 投票
1 回答
12079 浏览

maven - Derby JDBC 驱动程序在集成范围内的依赖范围(卡宴)

我正在尝试构建我的 pom.xml,以便在运行“mvn install”时可以自动创建我的数据库模式。我正在使用“maven-cayenne-plugin”来做到这一点。这是插件被调用(在集成测试阶段),我可以看到输出。但是 mojo 失败了,但有一个例外:(我使用 -e 和 -X 标志来查看这个)。

(如果我尝试使用 EmbeddedDriver 以及是否包含“derbyclient”或仅包含“derby”作为我的依赖项,我会得到相同的结果)。

这是一个应该复制问题的 pom.xml。我在 Windows 上使用 MVN 3。[ Apache Maven 3.0.4 (r1232337; 2012-01-17 08:44:56+0000)]

这还需要一个有效的 cayenne“datamap.map.xml”文件(在 src/main/resources 中),这是我之前制作的一个:

编辑:

添加更多信息。

derbyclient-10.10.1.1.jar 确实包含类“org.apache.derby.jdbc.ClientDriver”(只是从 Netbeans 扩展了 JAR)。

-X 标志似乎表明 CLASSPATH 正确引用了 JAR:

解决方案:工作 pom.xml (请参阅答案和我的评论):

0 投票
1 回答
302 浏览

apache-cayenne - Cayenne SQLTemplate 返回不正确的结果

在这个问题上我很困惑。请帮忙。

end是一个日期对象。当我更改end为其等效字符串时,查询正常工作。有谁知道为什么传入 Date 对象对 bind 指令不起作用?谢谢!

0 投票
1 回答
154 浏览

java - 自定义构造函数:Apache Cayenne 3.2M

我是 API 新手。在我看来,您必须像这样通过“上下文”对象构造对象:

而不是仅仅以通常的 new() 方式创建 Java 对象:

但我想为我的“MyEntity”类创建一个构造函数,它可以执行以下操作:

我怎样才能做到这一点 - 理想情况下,我想将逻辑保留在 MyEntity 类本身上,而不是在其他地方有一个“包装器”类来实例化对象并执行设置......我想我可以有一个“助手”方法,它只是先前实例化实例上的设置...但是我在这里缺少一个成语...?

0 投票
1 回答
199 浏览

java - Apache Cayenne:处理 Postgresql 枚举类型

我有一个名为“foo”的数据库类型,定义如下:

当我通过 Apache Cayenne Modeler 为我的表生成类时,我收到一条错误消息,指出该字段未定义。来一探究竟,没有为这个字段生成类型。

如何在 java 端实现 postgresql 枚举类型,以便 Cayenne 正确处理它们?

0 投票
1 回答
781 浏览

java - 在 Cayenne 中设置数据库路径

我计划在一个项目中使用 Apache Cayenne,但我很难正确设置它。

Cayenne 教程展示了如何在 CayenneModeller 中设置数据库位置。我的问题是我想在运行时动态确定的路径上使用 Apache Derby,但我不知道如何让 Cayenne 真正使用该路径。

我试图设置这样的路径:

但是当我稍后调用时DataContext.createDataContext(),控制台中的日志显示:

信息:创建的连接池:jdbc:derby:memory:testdb;create=true

那是我在 CayenneModeller 中设置的内存中测试 URL,而不是我设置的那个setupDataBase(是的,我确实做到了调用该方法)。此外,没有创建数据库文件(我用调试器验证了路径是正确的)。

那么,这个问题的规范解决方案是什么?

0 投票
1 回答
191 浏览

java - Apache Cayenne - I cannot find code defining the constants for Token.kind field

I'm using Cayenne to parse SQL conditions, through org.apache.cayenne.exp.parser.ExpressionParser, which produces a series of org.apache.cayenne.exp.parser.Tokens, and I want to determine the type of each Token (like identifier, equal sign, number, string etc.).

The token type is definitely identified by the ExpressionParser, and it seems to me that it is stored in the int field Token.kind. The values that this field shows in my parsing tests are definitely consistent (for ex. = is always 5, literal strings are always 42, and operators are always 2 etc.).

My problem is just that I cannot find the Java class containing the constants to compare Token.kind values with.

The Javadoc for field Token.kind says:

An integer that describes the kind of this token. This numbering system is determined by JavaCCParser, and a table of these numbers is stored in the file ...Constants.java.

It does not specify the full name of the file, so I downloaded JavaCCParser and I checked several *Constants.* files found in javacc-5.0src.zip, javacc-6.0.zip, the two javacc.jar contained in those two zip, and cayenne-3.0.2-src.tar.gz.

None of the classes I found there seems to me to have constants that consistently match the values I see in my tests. The closest I was able to get to that was with class org.apache.cayenne.exp.parser.ExpressionParserConstants which for ex. contains int PROPERTY_PATH = 34 and int SINGLE_QUOTED_STRING = 42 which definitely match the actual tokens of my test expressions, but other tokens have no corresponding constant in that class, for ex. the = sign (kind = 5) and the and operator (kind = 2).

So my question is if anyone knows in which Java class are those constants defined.

0 投票
2 回答
934 浏览

database - Cayenne,Postgres:主键生成

我正在使用 Cayenne 3.2M1 和 Postgres 9.0.1 创建数据库。现在我在生成 Cayenne 的主键时遇到问题,因为我的表具有多个主键,而且据我所知,Cayenne 不能为每个表生成多个主键。所以我希望 Postgres 来完成这项工作。我有这张桌子:

这是我得到的错误:

我一直在尝试有关 Cayenne 教程“生成的列”、“主键支持”的建议,但我似乎总是遇到一些错误。

我想知道如何解决这个问题。提前致谢

0 投票
1 回答
44 浏览

java - Cayenne:解析表达式后检索标记的位置

我正在用 Cayenne 解析一个表达式,所以我有解析产生的令牌 (org.apache.cayenne.exp.parser.Token)。

我想知道在解析表达式的哪个位置找到了令牌。我的问题是我找不到返回此信息的方法。有谁知道这是否可能?

这是我所做的一个例子: