gpt4 book ai didi

java - 由 : org. hibernate.MappingException 引起:无法确定以下类型:

转载 作者:太空宇宙 更新时间:2023-11-04 10:11:03 25 4
gpt4 key购买 nike

我的代码在 Hibernate 映射方面存在一些问题。它告诉我由:org.hibernate.MappingException:无法确定类型:这是 CompanyEntity 类

@Entity
@Table(name = "company", schema = "sit2job")
public class CompanyEntity {

@GeneratedValue(strategy = GenerationType.SEQUENCE)
private int companyId;
private String address;
private String contactPersonName;
private String description;
private String detail;
private String email;
private String faxNo;
private String name;
private String phoneNo;
private String website;

@OneToOne
@JoinColumn(name="user_id")
private UserEntity userId;

public UserEntity getUserId() {
return userId;
}

public void setUserId(UserEntity userId) {
this.userId = userId;
}

@Id
@Column(name = "company_id", nullable = false)
public int getCompanyId() {
return companyId;
}

public void setCompanyId(int companyId) {
this.companyId = companyId;
}

@Basic
@Column(name = "address", nullable = true, length = 500)
public String getAddress() {
return address;
}

public void setAddress(String address) {
this.address = address;
}

@Basic
@Column(name = "contact_person_name", nullable = true, length = 500)
public String getContactPersonName() {
return contactPersonName;
}

public void setContactPersonName(String contactPersonName) {
this.contactPersonName = contactPersonName;
}

@Basic
@Column(name = "description", nullable = true, length = 500)
public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}

@Basic
@Column(name = "detail", nullable = true, length = 500)
public String getDetail() {
return detail;
}

public void setDetail(String detail) {
this.detail = detail;
}

@Basic
@Column(name = "email", nullable = false, length = 50)
public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

@Basic
@Column(name = "fax_no", nullable = true, length = 25)
public String getFaxNo() {
return faxNo;
}

public void setFaxNo(String faxNo) {
this.faxNo = faxNo;
}

@Basic
@Column(name = "name", nullable = false, length = 100)
public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

@Basic
@Column(name = "phone_no", nullable = false, length = 25)
public String getPhoneNo() {
return phoneNo;
}

public void setPhoneNo(String phoneNo) {
this.phoneNo = phoneNo;
}

@Basic
@Column(name = "website", nullable = true, length = 100)
public String getWebsite() {
return website;
}

public void setWebsite(String website) {
this.website = website;
}

这是 UserEntity 类

@Entity
@Table(name = "user", schema = "sit2job")
public class UserEntity {
private int userId;
private String username;
private String password;

@ManyToOne
@JoinColumn(name="role_id")
private RoleEntity roleId;

@OneToOne(mappedBy = "userId", cascade = CascadeType.ALL)
@PrimaryKeyJoinColumn
private CompanyEntity companyId;

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name = "user_id", nullable = false)
public int getUserId() {
return userId;
}

public void setUserId(int userId) {
this.userId = userId;
}

@Basic
@Column(name = "username", nullable = false, length = 50)
public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

@Basic
@Column(name = "password", nullable = false, length = 200)
public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public RoleEntity getRoleId() {
return roleId;
}

public void setRoleId(RoleEntity roleId) {
this.roleId = roleId;
}

public CompanyEntity getCompanyId() {
return companyId;
}

public void setCompanyId(CompanyEntity companyId) {
this.companyId = companyId;
}

这两个类位于不同的包中有错误

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2018-09-14 01:59:27.805 ERROR 16007 --- [ main] o.s.boot.SpringApplication : Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.MappingException: Could not determine type for: com.sit.sit2job.Company.Entity.CompanyEntity, at table: user, for columns: [org.hibernate.mapping.Column(company_id)]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1708) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:581) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:503) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1089) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:859) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140) ~[spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759) [spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395) [spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:327) [spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1255) [spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1243) [spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
at com.sit.sit2job.Sit2jobApplication.main(Sit2jobApplication.java:17) [classes/:na]
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.MappingException: Could not determine type for: com.sit.sit2job.Company.Entity.CompanyEntity, at table: user, for columns: [org.hibernate.mapping.Column(company_id)]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:402) ~[spring-orm-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:377) ~[spring-orm-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) ~[spring-orm-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1767) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1704) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
... 16 common frames omitted
Caused by: org.hibernate.MappingException: Could not determine type for: com.sit.sit2job.Company.Entity.CompanyEntity, at table: user, for columns: [org.hibernate.mapping.Column(company_id)]
at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:456) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:423) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.mapping.Property.isValid(Property.java:226) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:597) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.mapping.RootClass.validate(RootClass.java:265) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.boot.internal.MetadataImpl.validate(MetadataImpl.java:329) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:461) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:892) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:57) ~[spring-orm-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) ~[spring-orm-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:390) ~[spring-orm-5.0.7.RELEASE.jar:5.0.7.RELEASE]
... 20 common frames omitted

我想知道这些问题的原因是什么。我虽然问题的原因是@OneToOne,因为@OneToMany 或@ManyToOne 没有任何问题。

最佳答案

您似乎正在将 companyIduserId 映射,您还需要提供如下所示的列名称:@JoinColumn(name="company_id")

所以你可能想要这样的东西:

@OneToOne(mappedBy = "companyId", cascade = CascadeType.ALL)
@PrimaryKeyJoinColumn
@JoinColumn(name="company_id")
private CompanyEntity companyId;

关于java - 由 : org. hibernate.MappingException 引起:无法确定以下类型:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52320419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com