Hibernate自定義主鍵生成
當使用Hibernate定義pojo的時候,有時候需要生成一定規則的數據表主鍵,這時候我們可以采用自定義主鍵生成方式去生成主鍵。
例如:
1、在pojo屬性中定義數據表主鍵
1 @Id 2 @GeneratedValue(generator = "xmqId") 3 @GenericGenerator(name = "xmqId", strategy = "com.xmq.core.XMQGenerator") 4 @Column(name = "C_ID") 5 private String pk;
2、創建主鍵生成器
1 package com.xmq.core; 2 3 import java.io.Serializable; 4 5 import org.hibernate.engine.spi.SessionImplementor; 6 import org.hibernate.id.UUIDHexGenerator; 7 8 public class XMQGenerator extends UUIDHexGenerator { 9 10 public XMQGenerator () { 11 super(); 12 } 13 14 @Override 15 public Serializable generate(SessionImplementor session, Object obj) { 16 return "PK_" + super.generate(session, obj); 17 } 18 19 20 }
注意:在pojo的父類中有時候帶有@MappedSuperclass注解,這表示這個父類不是一個完整的實體類,也不會映射到數據庫表,但是他的屬性都將映射到其子類的數據表字段中。