问题标签 [requestfactory]
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.
gwt - GWT / RequestFactory:在检索给定的实体列表时,执行 n+1 个 SQL 调用
当我使用带有 ServiceLocator 和 Locator 构造的 RequestFactory 请求实体列表时,GWT 执行 n+1 个 SQL 调用。
java - 如何使用 RequestFactory: .with(propertyRefs) 组合对象
我是 GWT 的新手,我需要您的专业建议。
我的问题是当这些 propertyRefs 本身包含我想要检索的项目列表时,如何将 RequestFactory: .with(propertyRefs) 用于“树”结构。
一些细节:
在服务器端,我有四个域对象 A、B、C、D 的层次结构:
- 一个对象包含(或者我最好说保持引用)列表
- B 包含列表
- C 包含 List 。
所有提到的域对象都有其相应的代理接口 AProxy、BProxy、CProxy、DProxy 在客户端使用。
在客户端,我想通过一次请求 AProxy 对象来获得所有对象的层次结构,这样我就可以从使用“get”方法访问数据的简便性中受益,并且不必为每个子对象进行循环服务器请求, 子子对象等
由于规范!我应该用smth。像 .with("property ref") 来获得一个层次结构,但是如何检索以下组合级别(在我的情况下,每个对象 B 的列表和每个对象 C 的列表)。
提前致谢。
gwt - Tomcat 上 GWT 2.4 rc1 RequestFactory 的问题
我们的 gwt 应用程序在使用 gwt 2.4rc1 的开发模式下运行良好,但是当我们在 tomcat 6 上部署时,在第一次 requestfactory 调用时,我们在服务器端得到以下异常。
在客户端,500(内部服务器错误)
android - 使用 Maven 在 GWT 中进行注释处理
我正在尝试让我的 android 应用程序使用与我的 gwt 应用程序相同的 requestfactories 与服务器通信。我使用 maven 来构建 android 应用程序和 gwt 应用程序。在 android 上进行请求工厂调用时出现异常:
我使用 java 1.6 进行构建。我的 gwt 版本是 2.4 (rc1)。我尝试使用 maven-processor-plugin 并导入 requestfactory-apt。但不知何故,maven 处理器插件似乎没有找到处理器。不确定配置的外观。
我有:
注释文件夹是在我的目标文件夹中创建的,但它是空的。有谁知道问题可能是什么?您还需要什么其他信息?
更新: 我将版本更改为 2.0.3-SNAPSHOT。现在我得到:
但此文件夹中没有文件。当我添加:
给我的pom。我收到错误消息:
现在我又被卡住了:-/
gwt - 接口/抽象类的带有 ValueType 的 RequestFactory
以下是我的域类
将 PersonProxy 创建为 EntityProxy 很简单,并且适用于 person.getName()
我已经将 VehicleProxy 创建为 ValueProxy 并使用 .with('vehicle') 调用了 fire() 但我收到错误消息:
域类型 com....AbstractVehicle$$EnhancerByCGLIB$$e86549b9 无法发送给客户端。
在 PersonProxy 我得到 @ProxyFor(value=Person.class,locator=PersonLocator.class)
在 VehicleProxy 我得到 @ProxyFor(value=Vehicle.class)
那么,如何在 RequestFactory 中处理这种继承?
我应该将 Vehicle 从 ValueProxy 更改为 EntityProxy 吗?
那么如何实现 VehicleLocator 的方法呢?
gwt - 我可以设置 EntityProxy 的默认字段值吗?
说我有这个:
创建的代理是空的。有没有办法为它的一些字段设置默认值?例如,这个代理有一个双精度的timeAllocation。是否可以将其设置为 0 而不必这样做:
谢谢
gwt - 在复杂用例中使用 GWT 编辑器
我正在尝试创建一个与 Google 表单创建页面非常相似的页面。
这就是我尝试使用 GWT MVP 框架(地点和活动)和编辑器对其建模的方式。
CreateFormActivity(活动和演示者)
CreateFormView(视图接口,带有嵌套的 Presenter 接口)
CreateFormViewImpl(实现 CreateFormView 和 Editor<FormProxy>
CreateFormViewImpl 有以下子编辑器:
- 文本框标题
- 文本框说明
- QuestionListEditor questionList
QuestionListEditor实现 IsEditor< ListEditor< QuestionProxy, QuestionEditor>>
QuestionEditor实现 Editor < QuestionProxy> QuestionEditor 有以下子编辑器:
- 文本框问题标题
- 文本框帮助文本
- 值列表框问题类型
- 下面每个问题类型的可选子编辑器。
每种问题类型的编辑器:
文本问题编辑器
段落文本问题编辑器
多项选择题编辑器
复选框问题编辑器
列表问题编辑器
ScaleQuestionEditor
网格问题编辑器
具体问题:
- 从表单中添加/删除问题的正确方法是什么。 (见后续问题)
- 我应该如何为每种问题类型创建编辑器?我试图听 questionType 值的变化,我不知道之后该怎么做。(由 BobV 回答)
- 每个问题类型特定的编辑器都应该用 optionalFieldEditor 包装吗?因为一次只能使用其中一个。(由 BobV 回答)
- 如何最好地管理在对象层次结构深处创建/删除对象。例如)指定问题编号 3 的答案,该问题属于选择题类型。(见后续问题)
- 可以使用 OptionalFieldEditor 编辑器来包装 ListEditor 吗?(由 BobV 回答)
基于Answer的实现
问题编辑器
问题库数据编辑器
示例子类型
剩下的唯一问题是没有显示或刷新 QuestionData 子类型特定数据。我认为这与我正在使用的编辑器设置有关。
例如,prompt 中的BooleanQuestionDataEditor
值既未设置也未刷新,并且在 rpc 有效负载中为 null。
我的猜测是:由于 QuestionDataEditor 实现了 LeafValueEditor,驱动程序不会访问子编辑器,即使它已附加。
非常感谢任何可以提供帮助的人!!!
gwt - GWT 请求工厂:请帮助解释一个完整的端到端 WriteOperation.DELETE 场景?
最近看了很多 gwt 请求工厂的例子,但仍然找不到完整的图片:
GWT 请求工厂的最佳选择是 CRUD(创建/读取/更新/删除)。话说回来:
- 即使在“更新”情况下,我也不清楚谁负责触发 EntityProxyChange(事件)
我在某处(忘记在哪里)读到客户端请求工厂保留它“看到”的 EntityProxy 的本地缓存,并且,如果它“看到”一个新缓存,那么它会触发一个 EntityProxyChange(事件)
这是否意味着,如果我的“updatePerson()”方法返回一个(新更新的)PersonProxy,那么本地客户端请求工厂基础设施是否“看到”这个新更新的人(即,凭借其更新的 versionId)然后它会自动触发 EntityProxyChange (Event) 吗?
- 在“删除”的情况下,假设我在请求上下文中创建了一个名为“deletePerson()”的函数,我了解请求是如何到达服务器的,并且可以执行例如 SQL DELETE 来删除实体,但是,谁负责触发 EntityProxyChange (Event) w/WriteOperation=DELETE ?这些事件会在服务器端触发吗?客户端?
我已经查看了 listwidget 示例(http://code.google.com/p/listwidget),但是,在“itemlist”删除时,它有点“作弊”,只需对整个文件进行蛮力刷新列表(尽管我确实理解该细节不一定是列表小部件首先要说明的);我本来希望看到一个 EntityProxyChange (Event) 处理程序来侦听 WriteOperation.DELETE 事件,然后只从 ListDataProvider 中删除该实体。
ServiceLayer/ServiceLayerDecorator.isLive() 是否会影响这些?
gwt - 使用 GWT 编辑器和 RequestFactory 编辑集合
有关上下文,请参阅原始问题。
附加背景:
- Objectify-Appengine 用于持久化。
FormProxy
并且QuestionProxy
是 EntityProxy 类型QuestionDataProxy
并且它的子类型是类型ValueProxy
- 所有编辑器都实现
HasRequestContext
,并且在QuestionData
子类型编辑器的情况下,HasRequestContext.setContext()
从父级显式调用。
第一个问题与集合有关,第二个问题与多态类型有关。我不确定问题是否出在我使用 Editors 或 RequestFactory 的方式上。由于数据不存在于 RPC 有效负载中,我们可以排除持久性设置。
问题
QuestionProxy 的值在 RPC 请求中都是空的(如果 QuestionProxy 是新创建的,否则确定)
问题
Questions
从表单中添加/删除的正确方法是什么。在使用编辑器时调用创建Question
、编辑Form
、更新方法的顺序是什么?QuestionData
当前解决方案
添加问题功能(在活动中):
要删除一个问题,我会在问题中标记一个标志,这会将其从服务器上的列表中删除,然后将其删除。(hack) 这仅适用于已保存的问题。
gwt - 具有不可变 ValueProxy 属性的 EntityProxies ->“找不到设置器”
我正试图将我的思想围绕 RequestFactory,但我遇到了一些问题。我有一个实体代理,它的属性是不可变类型的值代理(joda-time LocalDate),并且在对服务器的任何调用中使用此实体代理时遇到问题。
我通过仅在实体代理中包含属性的 getter,并且仅在 valueproxy 中包含原始属性的 getter,使该属性成为只读的。
但是,据我所知,如果我在调用服务方法时使用实体代理作为参数,任何引用的 valueproxy 都会自动标记为已编辑,并且其所有属性都包含在增量中?
这反过来又会导致 ReflectiveServiceLayer 在 LocalDate 上抛出一个关于缺少 setter 的异常。
我一直在考虑实现一个覆盖“setProperty”的ServiceLayerDecorator来解决这个问题,但我不确定这是否是一个好的解决方案。有没有“正确”的方法来解决这个问题?理想情况下,我希望 AbstractRequestContext 不要在对服务器的调用中包含不可变属性。
我正在使用 GWT 2.3
编辑:我创建了这样的解决方法,但我仍然不确定这是否是正确的方法: