当前位置: 首页 > 面试题库 >

我该如何进行Play!手动进行JPA交易?

越扬
2023-03-14
问题内容

通常,播放!在请求成功完成后提交事务。在Play中手动提交交易的正确方法是什么?

void addPerson() {
  Person p = new Person("John", "Doe");
  p.save();

  // TODO - commit the transaction

  // Now p should have an ID
  assert p.id != null;
  usePersonIdForSomethingNasty(p.id);
}

问题答案:

您可以通过调用JPA.em()获得Hibernate
EntityManager。然后,您可以从那里访问事务(JPA.em()。getTransaction())。

如果您打算自己管理事务,则将要禁用Play!的事务处理(可以在方法或控制器上使用@NoTransaction注释来执行此操作)。否则,播放!仍然会尝试在请求结束时提交事务,如果您自己已经完成了该操作,则会导致异常



 类似资料:
  • 问题内容: 这个问题与编程没有严格关系,但是对于程序员来说肯定是重要的。 我写了一个简单的smtp服务器,当我从控制台运行它时,一切都很好,只是它阻止了命令行。 我知道我可以通过运行它 或通过屏幕/ tmux等 但是问题是,我应该如何实现我的程序在后台运行,并且系统管理员可以很高兴地设置和管理该程序? 有些人比我有更多的经验,在golang- nuts上 写道,他们不使用fork等,而是使用mon

  • 我正在创建一个聊天机器人,以询问一些关于图片中所示国家中许多公司的商店列表业务的特定问题。我正在努力应对这样一个事实:我应该如何对本案的实体进行分组: 当用户输入:Wonder Group时,我想检查它在加利福尼亚州是否有任何商店。- - 还有,我应该使用多重条件反射还是这里的槽? 我试过很多方法,但都不管用。 实体类型

  • 问题内容: 我想这样做,但要使用标准API: 有任何想法吗? 问题答案: 您可以在CriteriaBuilder上使用countDistinct

  • 通过一个实例来说明如何在OpenQuant中进行实盘交易。 在OpenQuant 中打开SMACrossover策略项目,把Realtime工程设置成启动项。 打开场景文件(Scenario.cs),把使用的合约修改成国内上市交易的合约。 public override void Run() { Instrument instrument1=InstrumentManager.Instru

  • 模拟交易的数据源是什幺 Paper(模拟)模式下连接是真实的行情数据。 模拟交易与和回测的数据差异 模拟交易和回测的差异在于接入的行情不一样,模拟交易使用的是真实行情,回测使用的是历史行情。 如何进行模拟交易 要进行模拟交易先要理解什幺是模拟交易。OpenQuant包含三种工作模式,Backtest(回测)、Paper(模拟)、Live(实盘),而在系统内核里只有两种运行模式:Real-time、

  • 问题内容: 我认为这很简单,但是正如标题所示,在任何地方都找不到如何执行此操作的方法,就像成功提交表单后如何处理ajax一样。我尝试搜索它,但所看到的只是我需要的相反内容,即在ajax发布后提交。我将尝试草拟与Im正在研究的程序非常相似的程序。 这是我的表格。 这是一个有关ajax帖子的示例(不要介意该帖子的逻辑): 现在,我想做的就是提交表单时,如果提交成功,就会触发ajax发布。因此,就像在一