package com.sunlands.util;
import com.sunlands.domain.ReturnMessageDO;
import org.hibernate.HibernateException;
import org.hibernate.engine.spi.SessionImplementor;
import org.hibernate.id.IdentityGenerator;
import java.io.Serializable;
public class IdOrGenerate extends IdentityGenerator {
@Override
public Serializable generate(SessionImplementor session, Object obj) throws HibernateException {
if (obj == null){
throw new HibernateException(new NullPointerException()) ;
}
if ((((ReturnMessageDO) obj).getId()) == null) {//id is null it means generate ID
Serializable id = super.generate(session, obj) ;
return id;
} else {
return ((ReturnMessageDO) obj).getId();//id is not null so using assigned id.
}
}
}