扩展此问题Why does eclipselink consume the whole allocationSize each time it's rebooted?
我想知道这个问题的正确解决方案是什么,该帖子中唯一的答案建议切换到我已经完成的IDENTITY
策略,但我无法看到这些变化。分配大小50仍然有效。有没有人有关于如何基于每个实体(表)生成顺序标识符(1,2,3)而不是所有表都可访问的单个序列的任何示例?
答案 0 :(得分: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 字段值都是唯一的。
<强>参考强>