0

扩展这个问题为什么 eclipselink 每次重新启动时都会消耗整个 allocationSize? 我想知道这个问题的正确解决方案是什么,该帖子中的唯一答案建议切换到IDENTITY我已经完成但我看不到变化的策略。50 的分配大小仍然有效。有没有人有关于如何基于每个实体(表)而不是所有表都可以访问的单个序列来生成顺序标识符(1、2、3)的示例?

4

1 回答 1

0

为此,您有 TableGenerator 注释。

@Entity
public class Employee {

    @Id
    @TableGenerator(name="TABLE_GEN", table="SEQUENCE_TABLE", pkColumnName="SEQ_NAME",
        valueColumnName="SEQ_COUNT", pkColumnValue="EMP_SEQ", allocationSize = 500, initialValue = 1)
    @GeneratedValue(strategy=GenerationType.TABLE, generator="TABLE_GEN")
    private long id;
    ...
}

@Entity
    public class PaySlip {

        @Id
        @TableGenerator(name="SECOND_TABLE_GEN", table="SECOND_SEQUENCE_TABLE", pkColumnName="SEQ_NAME",
            valueColumnName="SEQ_COUNT", pkColumnValue="SECOND_EMP_SEQ", allocationSize = 500, initialValue = 1)
        @GeneratedValue(strategy=GenerationType.TABLE, generator="SECOND_TABLE_GEN")
        private long id;
        ...
    }

确保所有名称/*table* 和pkColumnValue字段值都是唯一的。

参考

于 2012-05-26T21:22:13.083 回答