创建entityManagerFactory时出错.无法生成Hibernate会话F.SchemaManagementE



我的控制器类-

import java.io.IOException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.erecruitment.app.repository.InterviewerDetail;
import com.erecruitment.app.repository.usernameExists;
@RestController
@CrossOrigin(origins = "*")
public class ClsInterviewerDetails {
@Autowired
InterviewerDetail intDet;
@CrossOrigin(origins = "*")
@GetMapping("/interviewerDetail")
public int interviewerDetail() {
return intDet.interviewerDet();
}
}

我的JpaRepository扩展接口-

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import com.erecruitment.app.model.ClsNew_User;
import com.erecruitment.app.model.user;
@Repository
public interface InterviewerDetail extends JpaRepository<ClsNew_User, String>{      
@Transactional
@Modifying
@Query(value="SELECT 
users_id,first_name,last_name,role,select_technical_skill,additional_skills FROM new_user 
WHERE role='Hr Interviewer' OR role='technical Interviewer'",nativeQuery=true)
int interviewerDet();   
}

我的Pojo类-

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="new_user")
public class ClsNew_User {  
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int users_id;       
@Column(name="first_name")
private String first_name;      
@Column(name="last_name")
private String last_name;   
@Column(name="role")
private String role;    
@Column(name="select_technical_skill")
private String select_technical_skill;  
@Column(name="additional_skills")
private String additional_skills;
public int getUsers_id() {
return users_id;
}
public void setUsers_id(int users_id) {
this.users_id = users_id;
}
public String getFirst_name() {
return first_name;
}
public void setFirst_name(String first_name) {
this.first_name = first_name;
}
public String getLast_name() {
return last_name;
}
public void setLast_name(String last_name) {
this.last_name = last_name;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public String getSelect_technical_skill() {
return select_technical_skill;
}
public void setSelect_technical_skill(String select_technical_skill) {
this.select_technical_skill = select_technical_skill;
}
public String getAdditional_skills() {
return additional_skills;
}
public void setAdditional_skills(String additional_skills) {
this.additional_skills = additional_skills;
}   
}

而且,它给出的错误是-

org.springframework.beans.factory.BeanCreationException:创建类路径资源[org/springframeter/boot/autoconfig/orm/jpa/Hibernate JpaConfiguration.class]中定义的名称为"entityManagerFactory"的bean时出错:调用init方法失败;嵌套异常为javax.persistence.PersistenceException:[PersistenceUnit:default]无法构建Hibernate SessionFactory;嵌套异常为org.hibernate.tool.schema.spi.SchemaManagementException:多次遇到导出标识符[new_user]网址:org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1804)~[spring-beans-5.3.12.jar:5.3.12]网址:org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620)~[spring-beans-5.3.12.jar:5.3.12]网址:org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)~[spring-beans-5.3.12.jar:5.3.12]网址:org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)~[spring-beans-5.3.12.jar:5.3.12]位于org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)~[spring-beans-5.3.12.jar:5.3.12]网址:org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)~[spring-beans-5.3.12.jar:5.3.12]网址:org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory:java:208)~[spring-beans-5.3.12.jar:5.3.12]网址:org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154)~[spring-context-5.3.12.jar:5.3.12]网址:org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908)~[spring-context-5..3.12.jar:5.3.12]网址:org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)~[spring-context-5..3.12.jar:5.3.12]网址:org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplication context.java:145)~[spring-boot-2.5.6.jar:2.5.6]网址:org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754)~[spring-boot-2.5.6.jar:2.5.6]网址:org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434)~[spring-boot-2.5.6.jar:2.5.6]网址:org.springframework.boot.SpringApplication.run(SpringApplication.java:338)~[spring-boot-2.5.6.jar:2.5.6]网址:org.springframework.boot.SpringApplication.run(SpringApplication.java:1343)~[spring-boot-2.5.6.jar:2.5.6]网址:org.springframework.boot.SpringApplication.run(SpringApplication.java:1332)~[spring-boot-2.5.6.jar:2.5.6]网址:com.erecruitment.app.ErecruitmentApplication.main(ErecruitmentApplication.java:10)~[classes/:na]导致原因:javax.persistence.PersistenceException:[PersistenceUnit:default]无法构建Hibernate SessionFactory;嵌套异常为org.hibernate.tool.schema.spi.SchemaManagementException:多次遇到导出标识符[new_user]位于org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:421)~[spring-orm-5.12.jar:5.3.12]在org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396)~[spring-orm-5.12.jar:5.3.12]网址:org.springframework.om.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManager FactoryBean.java:341)~[spring-orm-5.12.jar:5.3.12]网址:org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863)~[spring-beans-5.3.12.jar:5.3.12]网址:org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800)~[spring-beans-5.3.12.jar:5.3.12]…省略了16个常用帧由:org.hibernate.tool.schema.spi.SchemaManagementException引起:多次遇到导出标识符[new_user]位于org.hibernate.tool.schema.internal.AbstractSchemaMigrator.checkExportIdentifier(AbstractSchema Migrator.java:490)~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]位于org.hibernate.tool.schema.internal.GroupedSchemaMigratorImpl.performTablesMigration(GroupedSchemamigorImpl.java:68)~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]位于org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchema Migrator.java:207)~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]位于org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchema Migrator.java:114)~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]位于org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCooCoordinater.java:184)~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]网址:org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.proc(SchemaManagementToolCooCoordinater.java:73)~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]位于org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:318)~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]位于org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilder Impl.java:468)~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]位于org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBBuilderImpl.java:1259)~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]网址:org.springframework.om.jpa.vendor.SpringHibernate JpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernate jpa PersistenceProvider.java:58)~[spring-orm-5.12.jar:5.3.12]位于org.springframework.om.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManager FactoryBean.java:365)~[spring-orm-5.12.jar:5.3.12]位于org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409)~[spring-orm-5.12.jar:5.3.12]…20个普通帧省略

如何解决这些错误和异常?

Export identifier [X] encountered more than once的错误原因可能不同。

您应该检查您的标识符"X"(在您的情况下为"new_user")是否未被多次使用;例如:相同的表表"new_user"、表"new_user"和序列名"new_uuser"等…

正如注释中所述,您的原因是两个具有相同表名的实体。

最新更新