问题标签 [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.
prefetch - 使用 Cayenne 进行预取
我以两种方式与 B、C 和 D 类的对象建立了关系。
所以我可以做(用“a”一个A类型的对象):
当我对 A 执行 SelectQuery 并预取从 A 到 B、C 和 D 的关系时,一切都很好。但是如果我在从 B 到 A 的关系上添加预取,那么 A 会失去从 A 到 C 和 D 的关系,或者它什么也不做。我的意思是“输掉”它们已经失效。
这正常吗?为什么会这样?
注意:我使用的是 Cayenne 3.0.2 和不相交的预取语义。
示例 1(如上所述):
示例 2(这可能是相同的问题):
然后稍后
然后与 b 和 c 的关系无效或忽略最后一次预取。有时 b 和 c 会设置为 null,尽管它们不为 null。
谢谢
apache-cayenne - 已删除的集合仍然存在
我正在尝试删除一组对象,但不知何故它们仍然存在。
执行 commitChanges 后,集合中唯一的赋值有这个值:
我以为在deleteObject()之后,状态会是DELETED;在 commitChanges() 之后,它不应保留在集合中。据此:http ://cayenne.apache.org/docs/3.0/persistent-object-lifecycle.html 。
我错过了什么?
编辑:更改代码以删除不同的数据对象,从而将更改传播到分配。
apache-cayenne - SelectQuery 期间丢失的数据
示例: s 我有一个与对象 b、c 和 d 相关的 A 类对象 a。
如果我做:
然后稍后:
从 a 到 b 和 c 的关系无效(参见 DataRowUtils 第 115 行)。
我使用的是 Cayenne 3.0.2,但在 3.1 和 3.2M1 版本中的行为似乎相同
有没有办法解决这个问题?
我的想法是用这个函数覆盖 A 类中的 CayenneDataObject:
这是个坏主意吗?它似乎工作。
加载后,我根本不想从数据库中刷新 b 和 c 。
谢谢
expression - Apache Cayenne 获取集合表达式
使用Apache Cayenne我试图弄清楚当我有一个属性值集合时如何避免对数据库进行迭代调用。
假设我们有一个具有String类型Person
属性的持久对象。如果我有一个包含名称的列表,我想生成一个允许单个数据库调用的表达式,而不是遍历列表并依次获取每个。name
Person
Person
这实际上并不存在,但我想要这样的东西:
java - 通过 Cayenne 错误在 h2db 中保存数组
我正在尝试通过 Cayenne 接口保存持久对象:
使用此变体,相应的表字段在保存一些奇怪的字符串后存储,例如
而不是({1.0,2.0})之类的东西。如果我使用 sql 数组类型而不是 Double[] 它不会保存抛出不可序列化的异常。
apache-cayenne - apache-cayenne 中 JPA 支持的状态如何?
我在 cayenne 的跟踪器中发现了许多与 JPA 相关的问题,状态为“已关闭”。但是在源代码中看不到任何与 JPA 相关的内容。
我对 Cayenne 中 JPA 兼容性的状态感兴趣。
做了什么,正在进行什么,使用该未发布的代码可以解决什么问题。那项工作的来源在哪里,也许是分支名称。
我想要的是 JPA 注释。也许来自 JPA 注释的一些 cayenne 的 xml 生成器或某种可以处理带注释的类的 JPA-annotations-aware DataMapProvider。或者也许是从 xml 到 java 源的反向生成器。
java - 如何创建自定义 SQLite 函数并在 Cayenne 下执行
我正在尝试编写一个自定义 SQLite 函数,该函数需要两个参数并与 Apache Cayenne 一起运行,performQuery()
它看起来像:
我尝试使用org.sqlite.Function.create()
,但它失败了,因为我的连接被 Cayenne 包裹。
apache-cayenne - How to use Apache Cayenne context in session with concurrent ajax requests?
I have an ObjectContext stored in the session. Now I have multiple ajax requests for the same session, all modifying the data of ObjectContext. How do I go about ensuring these requests will be thread safe?
The following documentation suggests that I use context nesting. Can someone give me a concrete example of how this works? Or even an explanation of how nesting context will allow thread-safe requests. Or even a link to some documentation of best practices in these cases. Thanks!
https://cayenne.apache.org/docs/3.1/cayenne-guide/persistent-objects-objectcontext.html
Nesting is useful to create isolated object editing areas (child contexts) that need to all be committed to an intermediate in-memory store (parent context), or rolled back without affecting changes already recorded in the parent. Think cascading GUI dialogs, or parallel AJAX requests coming to the same session.
Edit: I found the following paragraph on the documentation which helped me.
Contexts that are only used to fetch objects from the database and whose objects are never modified by the application can be shared between multiple users (and multiple threads). Contexts that store modified objects should be accessed only by a single user (e.g. a web application user might reuse a context instance between multiple web requests in the same HttpSession, thus carrying uncommitted changes to objects from request to request, until he decides to commit or rollback them). Even for a single user it might make sense to use mutliple ObjectContexts (e.g. request-scoped contexts to allow concurrent requests from the browser that change and commit objects independently)
apache-cayenne - 如何使用 SQLResult 从 SQLTemplate 获取 JodaTime DateTime 对象
我正在尝试返回一个 JodaTime DateTime 对象。它适用于下面的 Effective_date 字段。但我不确定如何让它为 Event 对象返回 DateTime。有任何想法吗?
编辑:
我已经将 Joda DateTime 添加到 ExtendedType。仅当我使用 SQLResult 构建 Event 对象时,才会出现上述问题。
当不使用 SQLResult 实例化 Event 对象时,它工作得很好。在这里,Cayenne Modeler 生成了具有 DateTime 返回类型的 _Event 类。
java - Cayenne 3.1 - 禁用缓存
这是我的情况;假设我有 2 张桌子;员工和责任在哪里Responsibility.employee_id = employee.id
。
有时我们需要Responsibility.employee_id
手动更新,没有办法避免这种情况,有时需要手动完成。当我们这样做时,cayenne 认为不需要重新获取对象,因为它不知道它已被更新。
问:我想完全禁用cayenne 中的缓存。我希望从数据库中获取所有内容。这可能吗?