0

我正在使用 3 个不同的 JPA SequenceGenerators。每个人都在具有给定名称的数据源中创建自己的表:

@SequenceGenerator(name = "a_seq", sequenceName = "A_SEQ")
@SequenceGenerator(name = "b_seq", sequenceName = "B_SEQ")
@SequenceGenerator(name = "c_seq", sequenceName = "C_SEQ")

有没有办法将它们全部组合在一个表中,比如说 SEQUENCE 表,并且每个生成器都是该表中的一行?

4

2 回答 2

2

您需要使用Table生成器(将 id 值存储在指定表中)而不是Sequence生成器(使用原生 SQL 序列)。@TableGenerator下面这个简化的示例应该会给您一些想法,但是您可以通过在注释上指定更多属性来控制表的架构。

@TableGenerator(name="MyTableGen", table="SEQUENCES", pkColumnValue="MyClass")
@Entity
public class MyEntity
{
    @Id
    @GeneratedValue(strategy=GenerationType.TABLE, generator="MyTableGen")
    private long myId;

    ...
}
于 2017-02-05T07:29:29.483 回答
0

像这样。示例代码。

@Entity(name = "project_document")
public class Document {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int idx;

    // ... setter, getter
}

...

@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="my_entity_seq_gen")
@SequenceGenerator(name="my_entity_seq_gen", sequenceName="MY_ENTITY_SEQ")
private long id;

在此处输入链接描述

于 2016-12-16T05:07:52.840 回答