Ниже приведен пример кода:
BaseEntity.Java
Код: Выделить всё
import jakarta.persistence.Column;
import jakarta.persistence.Embeddable;
import jakarta.persistence.MappedSuperclass;
import org.hibernate.annotations.TenantId;
@MappedSuperclass
@Embeddable
public class BaseEntity {
@TenantId
@Column(name = "tenant_id", nullable = false)
private String tenantId;
public BaseEntity() {
}
public BaseEntity(String tenantId) {
this.tenantId = tenantId;
}
public String getTenantId() {
return tenantId;
}
public void setTenantId(String tenantId) {
this.tenantId = tenantId;
}
}
Код: Выделить всё
import jakarta.persistence.*;
import java.util.Objects;
@Entity
public class Person {
@Id @GeneratedValue private Long id;
@Embedded
private BaseEntity baseEntity;
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public BaseEntity getBaseEntity() {
return baseEntity;
}
public void setBaseEntity(BaseEntity baseEntity) {
this.baseEntity = baseEntity;
}
@Override
public String toString() {
return "Person{" + "id=" + id + ", name='" + name + '\'' + '}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return Objects.equals(id, person.id) && Objects.equals(baseEntity, person.baseEntity) && Objects.equals(name, person.name);
}
@Override
public int hashCode() {
return Objects.hash(id, baseEntity, name);
}
}
org.springframework.beans.factory.BeanCreationException: ошибка
создания bean-компонента с помощью имя 'entityManagerFactory' определено в пути к классу
resource
[org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]:
[PersistenceUnit: default] Невозможно построить Hibernate SessionFactory;
вложенным исключением является org.hibernate.cfg.NotYetImplementedException:
все еще необходимо подключить генерацию составного значения в памяти в
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory .java:1751)
~[spring-beans-6.0.3.jar:6.0.3] в
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:599)
~[spring-beans-6.0.3.jar:6.0.3] в
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521)
~ [spring-beans-6.0.3.jar:6.0.3] по адресу
org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326)
~[spring -beans-6.0.3.jar:6.0.3] по адресу
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
~[spring-beans-6.0. 3.jar:6.0.3] по адресу
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324)
~[spring-beans-6.0.3.jar:6.0 .3] в
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
~[spring-beans-6.0.3.jar:6.0.3] вorg.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1130)
~[spring-context-6.0.3.jar:6.0.3] в
org.springframework. context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:905)
~[spring-context-6.0.3.jar:6.0.3] в
org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:584)
~[spring-context-6.0.3.jar:6.0.3] в
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:730)
~[spring-boot-3.0.1.jar:3.0.1] в
org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:432)
~[spring-boot-3.0 .1.jar:3.0.1] в
org.springframework.boot.SpringApplication.run(SpringApplication.java:308)
~[spring-boot-3.0.1.jar:3.0.1] в
org.springframework.boot.SpringApplication.run(SpringApplication.java:1302)
~[spring-boot-3.0.1.jar:3.0.1] в
org.springframework. boot.SpringApplication.run(SpringApplication.java:1291)
~[spring-boot-3.0.1.jar:3.0.1] в
example.springdata.jpa.hibernatemultitenant.partition.Application.main (Application.java:9)
~[classes/:na] Вызвано: jakarta.persistence.PersistenceException:
[PersistenceUnit: default] Невозможно построить Hibernate SessionFactory;
вложенное исключение — org .hibernate.cfg.NotYetImplementedException:
Все еще необходимо подключить генерацию составных значений в памяти в
org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:421)
~ [spring-orm-6.0.3.jar:6.0.3] по адресу
org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396)
~[spring-orm-6.0. 3.jar:6.0.3] в
org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:352)
~[spring-orm-6.0.3.jar:6.0.3 ] в
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1797)
~[spring-beans-6.0.3.jar:6.0.3] в
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1747)
~[spring-beans-6.0.3.jar:6.0.3] ... 15 общих фреймов опущены Вызваноот: org.hibernate.cfg.NotYetImplementedException: все еще необходимо подключить
генерацию составных значений в памяти в
org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder.buildPair(EntityMetamodel.java) :601)
~[hibernate-core-6.1.6.Final.jar:6.1.6.Final] в
org.hibernate.tuple.entity.EntityMetamodel.buildGenerationStrategyPair(EntityMetamodel.java:460)
~[hibernate-core-6.1.6.Final.jar:6.1.6.Final] в
org.hibernate.tuple.entity.EntityMetamodel.(EntityMetamodel.java:296)
~[hibernate-core-6.1.6.Final.jar:6.1.6.Final] в
org.hibernate.persister.entity.AbstractEntityPersister.(AbstractEntityPersister.java:728)
~[hibernate- core-6.1.6.Final.jar:6.1.6.Final] в
org.hibernate.persister.entity.SingleTableEntityPersister.(SingleTableEntityPersister.java:152)
~[hibernate-core-6.1. 6.Final.jar:6.1.6.Final] в
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method) ~[na:na] в
java .base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
~[na:na] at
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl. java:45)
~[na:na] at
java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
~[na:na] at
java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
~[na:na] at
org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister (PersisterFactoryImpl.java:92)
~[hibernate-core-6.1.6.Final.jar:6.1.6.Final] в
org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl. java:75)
~[hibernate-core-6.1.6.Final.jar:6.1.6.Final] в
org.hibernate.metamodel.model.domain.internal.MappingMetamodelImpl.processBootEntities(MappingMetamodelImpl) .java:278)
~[hibernate-core-6.1.6.Final.jar:6.1.6.Final] в
org.hibernate.metamodel.model.domain.internal.MappingMetamodelImpl.finishInitialization( MappingMetamodelImpl.java:211)
~[hibernate-core-6.1.6.Final.jar:6.1.6.Final] в
org.hibernate.metamodel.internal.RuntimeMetamodelsImpl.finishInitialization(RuntimeMetamodelsImpl.java) :60)
~[hibernate-core-6.1.6.Final.jar:6.1.6.Final] в
org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:311)
~[hibernate-core-6.1.6.Final.jar:6.1.6.Final] в
org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:415)
~[ hibernate-core-6.1.6.Final.jar:6.1.6.Final] в
org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1425)
~[hibernate -core-6.1.6.Final.jar:6.1.6.Final] в
org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:66)
~[spring- orm-6.0.3.jar:6.0.3] по адресу
org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:376)
~[spring-orm-6.0.3.jar :6.0.3] по адресу
org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409)
~[spring-orm-6.0.3.jar:6.0.3] .. . 19 общих кадров опущены
Любая помощь приветствуется. Заранее спасибо,
Подробнее здесь: https://stackoverflow.com/questions/752 ... dded-class
Мобильная версия