Замените индивидуальную логику генерации идентификатора в 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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