union-subclass 父類 id 生成对策

union-subclass 父類 id 生成策略

在使用 Hibernate 的 union-subclass 繼承關係映射時, 父類id 的生成策略 不能選用 native, indentity 這種依靠數據庫自己管理id的方式。需要使用  increment,hilo 這種通過計算后獲得id 的方式。 

 

否則會報錯:Cannot use identity column key generation with <union-subclass> mapping for 。。。

原因是:多個子類的表的 id 需要被統一管理。

 

比如:子類A (表A)的第一條數據的 id 為1, 那麼 子類B(表B)的第一條數據就不能是1 了,可能為2。

 

如果使用數據庫級的id生成策略, 則多個子類的表的 id 就沒辦法統一管理了。