JPA & Hibernate笔记
主键生成策略
JPA的
- Auto, 根据不同的数据库自动选择,比如mysql的使用主键自增长,oracle和postgres使用sequence
- Identity, 主键自增长
- Sequence, 序列,mysql不支持
- Table, 使用一个表来生成
Hibernate的
Hibernate是对JPA的实现,并做了扩展,一共有下面这些:
static {
GENERATORS.put("uuid", UUIDHexGenerator.class);
GENERATORS.put("hilo", TableHiLoGenerator.class);
GENERATORS.put("assigned", Assigned.class);
GENERATORS.put("identity", IdentityGenerator.class);
GENERATORS.put("select", SelectGenerator.class);
GENERATORS.put("sequence", SequenceGenerator.class);
GENERATORS.put("seqhilo", SequenceHiLoGenerator.class);
GENERATORS.put("increment", IncrementGenerator.class);
GENERATORS.put("foreign", ForeignGenerator.class);
GENERATORS.put("guid", GUIDGenerator.class);
GENERATORS.put("uuid.hex", UUIDHexGenerator.class); //uuid.hex is deprecated
GENERATORS.put("sequence-identity", SequenceIdentityGenerator.class);
}