首页 > 解决方案 > JPA 中另一个模式的访问序列

问题描述

我在 2 个方案中定义了“master_seq”。我在 schema_2 中有一个表,比如 table_2。Schema_1 已在 table_2 及其 master_seq 上提供插入授权。问题是,我试图从schema_1(从我正在运行的spring boot应用程序)中插入一条记录,它使用的是schema_1的master_seq,而我希望它应该使用schema_2的master_seq。

简而言之,我想使用表所在架构的 master_seq 。

下面是代码示例:

    @Id
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="MASTER_SEQ")


@SequenceGenerator(name="MASTER_SEQ",sequenceName="MASTER_SEQ",allocationSize=1)
            public Long getId() {
                return id;
            }

我是否需要以某种方式在代码中使用另一个模式名称?但是模式名称会根据不同的环境不断变化。

提前致谢

标签: javadatabasejpa

解决方案


您可以尝试通过将模式名称附加到序列名称来访问序列:

@SequenceGenerator(name="MASTER_SEQ",sequenceName="schema_2.MASTER_SEQ",allocationSize=1)

推荐阅读