我使用的休眠在我的项目,和我的许多实体利用一个序列对于它们的技术键。例如:

@Entity
@Table(name = "T_MYENTITY")
@SequenceGenerator(name = "S_MYENTITY", sequenceName = "S_MYENTITY")
public class MyEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "S_MYENTITY")
    @Column(name = "MY_ENTITY_ID")
    private Long entityId;

    ...

}

我有两个问题有关的ID产生的休眠时,一个新的对象的这类保留:

  1. 为什么SequenceGenerator(从内持久性)具有一种默认值的allocationSize设定为50,而不是1?什么是利益吗?
  2. 什么是默认算法所使用的休眠于计算所产生的身份证吗?看来,休眠使用价值返回的顺序托管我Oracle数据库,但后来修改之前将其分配给我的实体...
有帮助吗?

解决方案

  1. 这是对业绩的原因(预)
  2. 阅读休眠源代码。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top