小编abo*_*sun的帖子

对JPA + Hibernate + @Transactional注释的Spring事务支持的奇怪befaviour

我发现,在相对简单的例子真是奇怪的行为,可能是我无法理解,因为春天@Transactional自然不深的知识,但是这是很有趣的.

我有简单的User dao,它扩展了spring JpaDaoSupport类并包含标准的save方法:

@Transactional
public User save(User user) {
    getJpaTemplate().persist(user);
    return user;
}
Run Code Online (Sandbox Code Playgroud)

如果工作正常,直到我已经添加新的方法,以同一类:用户getSuperUser(),这个方法应该isAdmin返回用户== true,并且如果在数据库没有超级用户,此方法应该创建一个.那是它的样子:

 public User createSuperUser() {
    User admin = null;

    try {
        admin = (User) getJpaTemplate().execute(new JpaCallback() {
            public Object doInJpa(EntityManager em) throws PersistenceException {
                return em.createQuery("select u from UserImpl u where u.admin = true").getSingleResult();
            }
        });
    } catch (EmptyResultDataAccessException ex) {
        User admin = new User('login', 'password');
        admin.setAdmin(true);
        save(admin); // THIS IS THE POINT WHERE STRANGE THING COMING OUT
    }

    return admin;
}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的代码是奇怪向前时发现,没有交易被创建,并承诺在保存(管理)方法的调用,并没有新的用户实际上并没有,尽管@Transactional注解创建我感到很困惑.

在结果,我们有情况:当save()方法从UserDAO的类之外调用 …

java aop spring hibernate jpa

8
推荐指数
2
解决办法
2503
查看次数

如何手动安装kubernetes?

在熟悉kubernetes的同时,我确实看到了大量的工具可以帮助我在任何地方安装kubernetes,但我不清楚它内部的功能,因此不了解如何解决问题.

有人可以提供一个链接,教程如何安装kubernetes没有任何工具.

kubernetes

7
推荐指数
2
解决办法
3928
查看次数

Google Cloud GKE 多专区集群与区域集群

有人知道这两者的区别吗?现在我看到的唯一区别是区域需要 >= 3 个区域。

google-cloud-platform kubernetes google-kubernetes-engine

7
推荐指数
3
解决办法
6419
查看次数

使用 Terraform 在 AWS RDS PostgreSQL 上启用 PostGIS

找不到使用官方 aws_db_instance 资源激活 PostGIS 扩展的方法,是否还有其他选项可以使用 Terraform 激活它?

postgresql amazon-rds terraform terraform-provider-aws

7
推荐指数
1
解决办法
326
查看次数

如何在 run-all apply 执行期间强制 Terragrunt 在出现第一个错误时失败

目前,当我运行 terragrunt run-all applyagags 文件夹时,即使出现错误,也会继续执行,这会导致其他模块出现错误,因此我最终会得到大量日志输出,并且必须在其中搜索第一个事件。

有什么方法可以强制 Terragrunt 快速失败吗?

terragrunt

7
推荐指数
0
解决办法
314
查看次数

RESTfull API的身份验证和授权(java jersery)

实现与tinyurl或bit.ly类似的服务,我想将服务公开为API,我使用java和jersey作为RESTfull服务实现.

我正在寻找使用API​​的用户身份验证的最简单方法,首先考虑的是OAuth,但问题是我不需要使用请求令牌查询进行这3次迭代调用,而不是使用回调url传递访问令牌查询.我只需要让用户能够调用api而无需对我的服务器进行额外的安全调用.

java security rest oauth jersey

6
推荐指数
1
解决办法
8343
查看次数

蓝牙低功耗Android服务器

我目前正在玩用于Android 4.3的蓝牙低功耗,目前还没有BLE信标,所以我的想法是用一个Android 4.3作为BLE服务器.但是如何创建客户端应用程序有很好的解释

http://developer.android.com/guide/topics/connectivity/bluetooth-le.html#close

几乎没有任何关于服务器,除了这个链接http://developer.android.com/reference/android/bluetooth/BluetoothGattServer.html

是否有一些教程或示例?

android bluetooth bluetooth-lowenergy

6
推荐指数
0
解决办法
5079
查看次数

RESTful服务架构问题

这是关于服务架构策略的更多问题,我们正在构建基于后端休息服务的大型Web系统.我们目前正在努力建立一些内部标准,以便在开发休息服务时遵循.

有些查询会返回实体列表,例如我们可以考虑让图像库检索服务:/ gell_all_galeries,返回下一个响应:

<galleries>
   <gallery>
      <id>some_gallery_id</id>
      <name>my photos</name>
      <photos>
          <photo>
                <id>123</id>
                <name>my photo</name>
                <location>http://mysite/photo/show/123</location>
                ......
                <author>
                     <id>some_id</id>
                     <name>some name</name>
                     .......
                <author>
          </photo>
          <photo> ..... </photo>
          <photo> ..... </photo>
          <photo> ..... </photo>
          <photo> ..... </photo>
    </photos>
  </gallery>
  <gallery> .... </gallery>
  <gallery> .... </gallery>
  <gallery> .... </gallery>
  <gallery> .... </gallery>
</galleries>
Run Code Online (Sandbox Code Playgroud)

正如你在这里看到的那样,响应相当大而且重,并不总是我们需要这么深的信息级别.通常的解决方案是为每个图库使用或 http://ru.wikipedia.org/wiki/Atom元素而不是完整的图库数据:

<galleries>
   <gallery>
      <id>some_gallery_id</id>
      <link href="http://mysite/gallery/some_gallery_id"/>
   </gallery>
   <gallery>
      <id>second_gallery_id</id>
      <link href="http://mysite/gallery/second_gallery_id"/>
   </gallery>
  <gallery> .... </gallery>
  <gallery> .... </gallery>
  <gallery> .... </gallery>
  <gallery> .... </gallery>
</galleries>
Run Code Online (Sandbox Code Playgroud)

第一个问题是下一个:也许我们甚至不应该使用和类型,只使用泛型和所有返回列表对象的资源:

 <list>
  <item><link href="http://mysite/gallery/some_gallery_id"/></item> …
Run Code Online (Sandbox Code Playgroud)

xml rest

5
推荐指数
1
解决办法
348
查看次数

如何删除分支及其引用的所有对象

问题是,在删除和推送分支后,它不会永远丢失,它仍然存储在存储库中.我删除了大量不必要文件的分支,但只要它仍然在git存储库中的某个地方,git clone命令持续时间太大了.

现在我唯一看到的方法是删除整个存储库并重新创建它,但没有不必要的分支.

git

5
推荐指数
1
解决办法
118
查看次数

HadoopFS(HDFS)作为分布式文件存储

我考虑将HDFS用作我们的客户端视频托管服务的水平扩展文件存储系统.我主要担心HDFS不是为此需求而开发的,这更像是"目前在需要处理大量数据的情况下使用的开源系统".我们不想处理数据只是存储它们,在HDFS的基础上创建像小型内部Amazon S3模拟.

可能重要的时刻是存储的文件大小将从100Mb到10Gb非常小.

有没有人在这样的目的中使用HDFS?

hadoop hdfs

5
推荐指数
1
解决办法
5372
查看次数

使用exec在Docker容器上从主机运行脚本

我确实有docker容器运行,我做了很复杂的脚本来运行容器内部.该脚本位于主机上.我无法修改Dockerfile如何将脚本文件放入docker vm以使用docker exec运行它?

docker

5
推荐指数
1
解决办法
5513
查看次数

基于Java IDE的文本(命令行)

可能问题标题对你来说可能看起来很奇怪,但我会试着解释一下.

我确实在寻找桌面eclipse的替代方案,理想情况下我需要的是直接在我的linux dev-server上编辑源代码.在开发服务器上我没有任何xwindows只是命令行.所以我想使用Putty登录服务器,开发,构建,运行,提交对源代码控制系统的更改.

从文本编辑器我需要:

  • 语法高亮
  • autocomletion(至少基本)
  • 快速导航槽项目文件
  • 基本重构:更改类名?将类移到其他包,更改方法签名
  • 运行构建而无需离开编辑器窗口
  • 运行svc/git命令而无需离开编辑器窗口

从第一眼看,emancs似乎就是我所需要的,但我不确定.

谢谢.

java ide emacs

4
推荐指数
1
解决办法
5439
查看次数

将环境变量传递给Docker

这是每个人都可以尝试的特定操作:

docker run --env TEST='xxx' ubuntu:14.04 /bin/echo $TEST
Run Code Online (Sandbox Code Playgroud)

返回一个空字符串.

docker

3
推荐指数
2
解决办法
5166
查看次数