Замените индивидуальную логику генерации идентификатора в Hibernate 6JAVA

Программисты JAVA общаются здесь
Anonymous
Замените индивидуальную логику генерации идентификатора в Hibernate 6

Сообщение Anonymous »

Я мигрирую проект в Spring Boot 3 и Hibernate 6. < /p>
у меня был этот класс, который использовался для генерации идентификаторов, если они не были предоставлены: < /p>

Код: Выделить всё

import java.io.Serializable;

import org.hibernate.HibernateException;
import org.hibernate.engine.spi.SessionImplementor;
import org.hibernate.id.IdentityGenerator;
import org.springframework.beans.BeanWrapper;
import org.springframework.beans.PropertyAccessorFactory;

public class UseIdOrGenerate extends IdentityGenerator {

//  @Override
public Serializable generate(SessionImplementor session, Object obj) {
if (obj == null)
throw new HibernateException(new NullPointerException());

BeanWrapper forBeanPropertyAccess = PropertyAccessorFactory.forBeanPropertyAccess(obj);
if (!forBeanPropertyAccess.isReadableProperty("id") || forBeanPropertyAccess.getPropertyValue("id") == null) {
return super.generate(session, obj);
} else {
return (Serializable) forBeanPropertyAccess.getPropertyValue("id");
}
}
}
< /code>
Теперь в Hibernate 6 Это больше не работает.import org.hibernate.engine.spi.SharedSessionContractImplementor;
import org.hibernate.id.IdentifierGenerator;
import org.springframework.beans.BeanWrapper;
import org.springframework.beans.PropertyAccessorFactory;

public class UseIdOrGenerate implements IdentifierGenerator {

@Override
public Object generate(SharedSessionContractImplementor session, Object entity) {
BeanWrapper beanWrapper = PropertyAccessorFactory.forBeanPropertyAccess(entity);
Object currentId = beanWrapper.getPropertyValue("id");

if (currentId != null) {
return currentId;
} else {
return super.generate(session, entity)
}
}
}
Но метод генерирования больше не существует.
Какой правильный способ сделать это в Hibernate 6?

Подробнее здесь: https://stackoverflow.com/questions/794 ... ibernate-6

Вернуться в «JAVA»