代码之家  ›  专栏  ›  技术社区  ›  Snæbjørn

Hibernate不返回手动插入的行

  •  1
  • Snæbjørn  · 技术社区  · 6 年前

    我的jpa存储库有一个问题,它没有返回我通过好的旧SQL手动插入到数据库(Oracle)中的行

    Insert into SYSTEM.USER (ID,CREDENTIALS,ISADMIN) values (USERSEQ.nextval,'foo',1);
    

    我的Jpa存储库

    @RepositoryRestResource
    public interface UserRepository extends JpaRepository<User, Long> {}
    

    用户实体

    @Data
    @Entity
    public class User {
      @Id
      @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "idgen")
      @SequenceGenerator(initialValue = 1, allocationSize = 1, name = "idgen", sequenceName = "userseq")
      private Long id;
    
      @NotNull
      private String credentials;
    
      private boolean isAdmin;
    }
    

    超奇怪的是,我通过REST接口插入的条目可以工作!

    所以如果我创造:

    • 通过REST API使用A
    • 用户B通过SQL语句
    • 通过REST API的用户C

    结果 GET /api/users A, C

    把我的头发都拔了。我想我把范围缩小到了Oracle的闪回特性。因为只有A和C在闪回中有条目。所以冬眠必须在幕后施展魔法。

    所以我的问题是。如何使用SQL插入行,以便它也得到一个闪回条目。

    如果倒叙不是问题的话。如何使Hibernate返回所有行?

    0 回复  |  直到 6 年前