首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用Objectify在Java GAE的void函数中设置事务?

Objectify是一个用于操作Google App Engine的Java数据存储的库。在Java GAE的void函数中设置事务可以通过以下步骤完成:

  1. 首先,确保你已经正确配置了Objectify库,并将其添加到你的项目中。
  2. 使用@Inject注解将com.googlecode.objectify.ObjectifyFactory注入到你的void函数中,这将提供Objectify的实例。
  3. 在需要设置事务的void函数上方添加@Transaction注解,该注解会告诉Objectify在执行该函数时启动一个事务。
  4. 在函数的实现中,首先使用Objectify的实例来获取事务对象。可以使用ofy().transact()方法,该方法接受一个lambda表达式或匿名函数作为参数。
  5. 在事务中,你可以执行需要在同一事务中运行的操作。例如,可以使用ofy().save()方法来保存或更新实体对象。

以下是一个示例代码:

代码语言:txt
复制
import com.googlecode.objectify.ObjectifyFactory;
import com.googlecode.objectify.ObjectifyService;
import com.googlecode.objectify.annotation.Entity;
import com.googlecode.objectify.annotation.Id;
import com.googlecode.objectify.annotation.Transient;
import com.googlecode.objectify.annotation.Index;
import com.googlecode.objectify.annotation.Load;
import com.googlecode.objectify.annotation.Parent;
import com.googlecode.objectify.annotation.Ignore;
import com.googlecode.objectify.annotation.Subclass;

import static com.googlecode.objectify.ObjectifyService.ofy;

@Entity
public class MyEntity {
    @Id private Long id;
    @Index private String name;
    // Other properties and methods

    public static void myVoidFunction() {
        // Start a transaction
        ofy().transact(() -> {
            // Perform operations within the transaction
            MyEntity entity = new MyEntity();
            entity.setName("Example");
            ofy().save().entity(entity).now();
        });
    }
}

public class MyObjectifyFactory extends ObjectifyFactory {
    public MyObjectifyFactory() {
        register(MyEntity.class);
    }
}

// In your application startup code
ObjectifyService.init(new MyObjectifyFactory());

这个示例代码演示了如何在Java GAE的void函数中使用Objectify设置事务。在myVoidFunction函数中,我们使用了ofy().transact()方法来启动一个事务。在事务中,我们创建了一个新的MyEntity对象,并使用ofy().save()方法将其保存到数据存储中。

请注意,示例中的代码仅用于演示目的,并可能需要根据你的实际需求进行修改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java开源建站工具

美国程序员Jon Scott Stevens,公布了他创业公司所使用开发工具清单。 他语言平台是Java,开发项目是一个网站(还未上线)。所用到工具都是开源,可以免费得到。...目前创业者之中,用Java作为网站开发语言的人似乎很少。这当然不是没有原因Java看上去确实不像是最便捷网站开发工具,给人感觉是用起来麻烦又费事。...另外,Google App Engine平台提供免费Java主机,所以使用Java建站也不失为一种合理选择。 我把他工具清单抄在下面。如果有一天,我也用Java建站,就可以参考了。 ?...Google App Engine:Google主机服务,有数据库支持。使用它,就不用自己架设服务器了,而且轻松解决扩展性问题。 2....Objectify-AppEngine:GAE平台数据库管理工具。 3. GitHub:代码托管服务。 二、Java编程环境 4. Eclipse:著名Java集成开发环境。 5.

1.7K80

如何使用FindFuncIDA Pro寻找包含指定代码模式函数代码

简而言之,FindFunc主要目的就是二进制文件寻找已知函数。  使用规则过滤  FindFunc主要功能是让用户指定IDA Pro代码函数必须满足一组“规则”或约束。...FindFunc随后将查找并列出满足所有规则所有函数。...格式将规则存储/加载到文件; 6、提供了用于实验单独选项页; 7、通过剪贴板选项页之间复制规则(格式与文件格式相同); 8、将整个会话(所有选项页)保存到文件; 9、指令字节高级复制;  工具要求...广大研究人员可以直接使用下列命令将该项目源码克隆至本地: git clone https://github.com/FelixBer/FindFunc.git 接下来,将项目中findfuncmain.py...文件拷贝到IDA Pro插件目录即可。

4.1K30
  • nextline函数_JAVAScannernext()和nextLine()为什么不能一起使用

    Java 输入一直是一个坑,本来一直用 Scanner,但一直搞不懂换行符啥,就用 BufferReader ,但前不久大疆笔试需要持续输入,早忘了 Scanner 怎么写,而那个场景用 Scanner...回车符 “\r” 它被丢弃缓冲区,现在缓冲区,只有一个 \r ,于是 下一次 nextLine 扫描时候就又扫描到了 \r,返回它之前内容,也是啥都没有 “” ,然后再把 \r 去掉, 对于...这个扫描器扫描过程判断停止依据就是“结束符”,空格,回车,tab 都算做是结束符 而坑点在于 next 系列,也就是下面这些函数:next nextInt nextDouble nextFloat...这些函数与 nextLine 连用都会有坑 坑点就是 next 系列函数返回了数据后,会把回车符留在缓冲区,因此我们下一次使用 nextLine 时候会碰到读取空字符串情况 解决方案:输入都用...nextLine ,做格式转换 输入 next 系列函数调用后,中间调用一次 nextLine 调用去掉了回车符后,再调用一次 nextLine 调用真正输入我们数据 都使用 nextLine: class

    2.7K10

    前端ES6rest剩余参数函数内部如何使用以及遇到问题?

    ES6 引入了 rest 参数(...变量名),用于获取函数内不确定多余参数,注意只能放在所有参数最后一个: function restFunc(...args) { console.log(...剩余参数只包含没有对应形参实参,arguments 包含函数所有实参 剩余参数是一个真正数组,arguments 是一个类数组对象,不能直接使用数组方法 arguments 不能在箭头函数使用...函数内部怎么使用剩余参数 剩余参数我们大都用在一些公共封装里面,经常配合闭包、call、apply、bind 这些一块使用,对于这几个使用差异很容易把人绕晕。...(args[0]) } restFunc(2) // 2 2、闭包函数配合 call、bind 使用 这里函数内部用 call、bind 去改变 this 指向 function callFunc...3、闭包函数配合 apply 使用 示例和上面的 call、bind 类似,不过注意 apply 接收参数本来就是一个数组或类数组,所以这里并不需要额外用展开运算符去展开剩余参数: function

    14630

    NumPy 秘籍中文第二版:四、将 NumPy 与世界其他地方连接

    Python 生态系统之外,Java,R,C 和 Fortran 等语言非常流行。 我们将详细介绍与这些环境交换数据细节。 此外,我们还将讨论如何在云上获取 NumPy 代码。...我们看到了如何加载 Lena 样例图像。...让我们从加载此样本 R 数据集开始: 使用 RPy2 importr()函数将数据集加载到数组。 此函数可以导入R包。 在此示例,我们将导入数据集 R 包。...撰写本书时,GAE 正式仅支持 Python 2.5 和 2.7。 GAE 将尝试系统上找到 Python; 但是,例如,如果您有多个 Python 版本,则可能需要自行设置。...您可以启动器应用首选项对话框设置设置

    1.9K10

    递归解析 LXML 树并避免重复进入某个节点

    1、问题背景我们使用 LXML 库解析 MathML 表达式时,可能会遇到这样一个问题:递归解析过程,我们可能会重复进入同一个节点,导致解析结果不正确。...')', '/', '(', '5', ')', ')']这是因为解析 mfrac 节点时,我们递归调用了 parseMML 函数两次,分别解析了分子和分母。...而在解析分子时,我们又递归调用了 parseMML 函数,导致重复进入了 mrow 节点。2、解决方案为了解决这个问题,我们可以使用一个栈来保存已经解析过节点。...当我们开始解析一个新节点时,我们可以将该节点压入栈。当我们完成解析该节点时,我们可以将该节点从栈中弹出。这样,我们就能够避免重复进入同一个节点。...以下代码演示了如何使用栈来避免重复进入同一个节点:def parseMML(mmlinput): from lxml import etree from StringIO import *

    10110

    谈谈云计算

    由于它在其应用程序上强加诸多限制 — 它们许多都有充分理由来维持可伸缩性 — GAE 不支持某些 Java 平台 API:最明显是,文件写入 I/O(因为 GAE 不对应用程序提供文件系统访问)...对于越来越多使用第三方 web 服务 API 应用程序来说,这就是 GAE 主要限制。 此外,您需要使用现有应用程序框架或将现有应用程序移动到 GAE 时,这些 API 限制构成了挑战。...一个好示例是 JavaServer Faces (JSF) web 框架:其需要源代码级获取以便在 GAE 环境运行,即使如此 JSF 顶端许多 UI 库都兼容 GAE。...然而,缺乏对完整 Java 平台支持是一个潜在致命伤,且 GAE 一些组件尚处于试验阶段而不是已经生产就绪。...您可以使用基于 web 管理控制台来监控可用于每一个 EC2 实例上资源,并设置规则,从而在现有服务器负载超过预设限制时自动启动负载平衡器后面的新服务器实例。

    11.6K50

    PaaS 调研:GAE与 AWS(上)

    另外,作为一个游戏服务器端开发者,也试图从PaaS概念,学习如何提高游戏开发、运营效率方法。所以就有了以下研究。...开发支持 Google不愧是以技术著称公司,其运行容器,支持Python\Java\PHP\Go等等几乎所有主流编程语言,及这些编程语言Web应用程序方面的标准框架,如Servlet for Java...用户可以使用这些工具,好像开发测试本地程序一样来使用。当然使用之前还是需要配置自己GAE帐号之类参数。...其中比较值得注意是,它运维环境还支持负载灰度和资源配额,也就是可以设置各种参数,来限制缓存空间、实例数、最大线程数、存储空间、使用带宽等等。...这些配额并不是简单基于IaaS功能继承而来,而是可以针对应用容器,或者各种配套服务为目标来设置GAE另外一个很棒功能是所谓GoogleAnalytics功能。

    2.4K20

    2011年05月10日 Go生态洞察:Go与Google App Engine结合

    加入我,让我们一起了解Go如何GAE上激发潜力,将应用推向云端! 引言 Google App Engine作为一个提供可靠、可扩展且易于构建和部署web应用平台,已经托管了超过十万个应用。...从支持Python应用开始,到2009年增加了Java运行时支持,而现在,Go语言成为了这个大家庭新成员。...Go语言GAE表现 App Engine环境,Go运行时提供了完整Go语言和几乎所有的标准库,除了一些GAE环境没有意义部分,例如没有unsafe包,syscall包也进行了精简。...GoGAE编译与部署 部署代码是源代码形式,并在云中使用64位x86编译器(6g)进行编译,这使Go成为App Engine上运行第一个真正编译语言。...表格:GoGAE特点总结 特性 描述 GoGAE状态 目前仍是实验性特性,但SDK已可下载 SDK自包含性 无需预装Go,下载SDK即可使用 Go风格API 包括Datastore和Blobstore

    9710

    AppengineJS:用JavaScript来搞GAE

    尽管Google没有为他自家App Engine平台开发JavaScript SDK,但GAE Python SDK新端口AppengineJS促进了GAE应用程序构建,这个新家伙使用了所有Web...该端口App Engine Java之上使用Rhino(JavaScriptJVM实现),但是该API基于App Engine Python,因为它是JS之类脚本语言。...本周博客正文中,项目开发人员之一George Moschovitis说他项目最近引起了读者们很大兴趣,他要在这里回复一些读者们提问。...他说,如果你已经知道Python或者Java,那么你应该坚持那些由Google支持SDK。 App Engine Python文档应该高效地用被应用于JavaScript SDK。...此外,所有delete()函数都被重命名为.remove()函数,以避免与delete关键字发生冲突(他们贴心提供了一个叫做DELETE()函数,但不建议使用,因为它将来可能会被弃用)。

    1.2K80

    GAE、SAE、BAE 对比分析

    域名绑定 域名绑定就是把域名解析到服务器IP,然后服务器上设置该域名有权限访问过程。 GAE 开通企业套件后随便绑,企业套件有免费版。...使用配置工具来上传、更新应用配置其实是非常好方式,但目前 SAE、BAE都没有提供客户端配置工具,这增加了使用维护工作量,也使得开发者开发难度相对较大。...结论: 本人亲测与使用过这三个云应用平台,对自己使用过程体会与碰到问题跟大家分享一下。 最终我还是选择了GAE,因为我主要是使用Javascript,考虑绑定域名与管理问题。...说说使用过过程中体会与碰到问题 1.GAE支持Java,Python,Go语言,但是每个应用不与语言绑定,同一个应用可以使用不同语言开发。不支持MySQL数据库。...有成熟本地测试平台,尤其是Python本地测试工具,告别强大。代码不支持Svn,Git版本控制。 2.SAE支持PHP,Java,Python,作为一个PHP程序员是爱之,恨之。

    3.7K30

    AppengineJS:JavaScript到GAE

    尽管Google没有为App Engine平台开发JavaScript SDK,但是一个名为AppengineJSGAE Python SDK新端口可以为GAE构建应用程序,这些应用程序是用所有web...该端口App Engine Java之上使用Rhino(JavaScriptJVM实现),但是该API基于App Engine Python,因为它是JS之类脚本语言。...本周博客,项目开发人员之一George Moschovitis说,他项目最近引起了很大兴趣,他对读者评论有几个回答。...他说,如果你已经知道Python或者Java,那么你应该坚持那些由Google支持SDK。 App Engine Python文档应该可以有效地用于JavaScript SDK。...此外,所有delete()函数都被重命名为.remove()函数,以避免与delete关键字发生冲突(DELETE()别名也被提供,但不建议使用,将来可能会被弃用)。

    2K60

    NeurIPS 2016 | VGAE:变分图自编码器

    GAE,我们需要优化编码器 W^0 和 W^1 ,进而使得经解码器重构出邻接矩阵 \hat{A} 与原始邻接矩阵 A 尽量相似。...从上述损失函数可以看出,损失函数本质就是两个交叉熵损失函数之和。 当然,我们可以对原始论文中GAE进行扩展,例如编码器可以使用其他GNN模型。 2....GAE,可训练参数只有 W^0 和 W^1 ,训练结束后只要输入邻接矩阵 A 和节点特征矩阵 X ,就能得到节点向量表示 Z 。...与GAE不同,变分图自编码器VGAE,节点向量 Z 不是由一个确定GCN得到,而是从一个多维高斯分布采样得到。...损失函数由两部分组成: 第一部分与GAE类似,为交叉熵函数,也就是经分布 q 得到向量重构出图与原图差异,这种差异越小越好;第二部分表示利用GCN得到分布 q 与标准高斯分布 p(Z) 间

    1.3K30

    主流 PaaS 平台架构:谷歌GAE、AEB、Cloud Foundry、Heroku

    GAE 支持编程语言包括 Java、Python、PHP、Go。...开发人员利用 GAE 简化了 Web 应用程序开发和部署。下图是 GAE Web 架构简图,在这个架构应用程序可以使用自动伸缩计算资源,同时可集成分布式缓存、任务队列、数据存储等服务。...2)Version AEB ,Version 代表一个 Web 应用特定代码版本,它指向了亚马逊简单存储服务上一个对象,一般包含了可部署代码,比如 Java war 包。...它是一个开源项目,没有专门公有云环境可供使用,不像 GAE、AWS PaaS 只需要关注应用代码, Cloud Foundry 需要企业 IT 人员自己 IDC 或公有 IaaS 上构建一个私有...Heroku 路由模块被称为 Hermes,采用 Erlang 语言编写,其能够动态感知一个应用包含多少个 dyno,基于一定策略进行任务分发,另外我们还可以设置超时保护机制,Hermes 上就拒绝掉外部请求

    6.4K20

    【译】图上深度学习综述 五、图自编码器

    本节,我们将首先介绍图自编码器,然后转向图变分自编码器和其他改进。表 4 总结了所调查 GAE 主要特征。...GC-MC [78] 通过 [36] 中使用 GCN 作为编码器,进一步采用了不同自编码器方法: 解码器是一个简单双线性函数: 其中Θ[de]是编码器参数。...目标函数是: 其中L2类似于 VAE 或 GAE 定义重建损失,而L[GAN]是 其中G(F^V, A)是方程 45 卷积编码器,D(·)是具有交叉熵损失鉴别器,p[h]是先验分布。...本文采用简单高斯先验,实验结果证明了对抗训练方案有效性。 5.3.2 归纳学习和 GCN 编码器 与 GCN 类似,如果节点属性包含在编码器,则可以将 GAE 应用于归纳设置。...5.3.3 相似性度量 GAE ,采用了许多相似性度量,例如,L2 重建损失,拉普拉斯特征映射和 AE 排序损失,以及 VAE KL 散度和 Wasserstein 距离。

    1.4K20

    【干货】全面总结(值函数与优势函数)估计方法

    为什么说MC(Monte Carlo Method)算法估计量无偏差高方差? ? -return如何做到方差和方差间找平衡点? TD( ? )为何比 ? -return有计算方面的优势?...(3) TD算法特点——高偏差低方差 TD算法可以看成是利用策略 ? 生成样本 ? ,并且使用 ? 作为值函数 ? 估计量。整个优化过程,近似值函数 ?...状态值估计量: ? n为1即为TD算法估计量,n为N是MC算法估计量。 ? -return算法对这N个估计量进行加权平均,TD于MC算法找折中点,通过这种方式偏差和方差间找平衡。...2.3 泛化优势估计(GAE) 泛化优化估计(GAE)实际上是 ? -return应用在估计优势函数版本。可以按照介绍 ? -return方法使用n步回报值思路列出N种优势函数估计量。 ?...-return算法改进,用类似动量优化方法(Adagrad、RMSProp、Adam等)使算法无需采样到episode结尾才进行计算,让计算消耗平摊每个时间点上。GAE实际上是 ?

    1.9K10

    java数据库操作 (附带数据库连接池代码)

    java访问数据库方法和有关API,java访问数据库主要用方法是JDBC,它是java语言中用来规范客户端程序如何来访问数据库应用程序接口,提供了诸如查询和更新数据库数据方法,下面我们就具体来总结一下...事务原子性表示事务执行过程任何失败都将导致事务所做任何修改失效。一致性表示 当事务执行失败时,所有被该事务影响数据都应该恢复到事务执行前状态。...隔离性表示事务执行过程对数据修改,事务提交之前对其他事务不可见。持 久性表示当系统或介质发生故障时,确保已提交事务更新不能丢失。持久性通过数据库备份和恢复来保证。...()  public void commit()  public void rollback()  使用 JDBC 事务界定时,您可以将多个 SQL 语句结合到一个事务。...* 本函数从连接池向量 connections 返回一个可用数据库连接,如果 * 当前没有可用数据库连接,本函数则根据 incrementalConnections 设置

    1.6K20

    Spring事务回滚和提交你真的明白了吗,本篇文章带你走近源码。干货满满

    ) public void setRollbackOnly() { // 将holder这个属性设置成true this.rollbackOnly = true; } 我们看到将status...TransactionConnectionHolder属性rollbackOnly属性设置为true,这里暂时不多考虑,等到下面提交时候再介绍。...** 事务提交 事务执行没有出现任何异常,也就意味着事务可以走正常事务提交流程,这里回到流程,看看TransactionAspectSupport类commitTransactionAfterReturning...,还需要做一个判断,不知道大家还有没有印象,我们分析事务异常处理规则时候,当某个事务既没保存点,又不是新事务,Spring对它处理方式只是设置一个回滚标识(具体是AbstractPlatformTransactionManager...函数,在这个函数里面可以看到是无论是异常还是没有异常流程,最后finally代码块都会执行这个cleanupAfterCompletion(status);方法 看源码(AbstractPlatformTransactionManager.java

    1.1K10
    领券