gpt4 book ai didi

java - 错误如下所述

转载 作者:行者123 更新时间:2023-12-01 11:42:14 24 4
gpt4 key购买 nike

有一个员工类别,其中有一组他知道的语言。

error :Exception in thread "main" org.hibernate.MappingException: Could not determine type for: java.util.Set, at table: Employee_Table, for columns: [org.hibernate.mapping.Column(languages)]

员工.java

    package Mapping.Collection.Set;

import java.util.*;

import javax.persistence.*;
@Entity
@Table(name="Employee_Table")
public class Employee {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int empId;
@Column(name="EMP_NAME",nullable=false)
private String empName;
public int getEmpId() {
return empId;
}
public void setEmpId(int empId) {
this.empId = empId;
}
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
private int salary;


@ElementCollection(targetClass=String.class)
@JoinColumn(name="Languages_Known")
private Set<String> languages=new HashSet<>();

public Set<String> getLanguages() {
return languages;
}
public void setLanguages(Set<String> languages) {
this.languages = languages;
}




}


TestMain.java
package Mapping.Collection.Set;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;

public class TestMain {

/**
* @param args
*/
public static void main(String[] args) {
Employee emp=new Employee();
emp.setEmpId(1);
emp.setEmpName("Shrini Jaiswal");
emp.setSalary(10000000);
emp.getLanguages().add("Hindi");
emp.getLanguages().add("English");
SessionFactory factory=new AnnotationConfiguration().configure().buildSessionFactory();
Session session=factory.openSession();
Transaction tx=session.beginTransaction();
tx.begin();
session.save(emp);
tx.commit();
session.close();
}

}

最佳答案

在 Hibernate Annotation 中,@ElementCollection 是从另一个表获取列值的功能,无需映射两个表。

您应该在另一个表中有语言列表,然后只有您像这样使用..

@ElementCollection
@CollectionTable(name="languages", joinColumns=@JoinColumn(name="empId"))
private Set<String> languages;

read this发帖获取更多信息。

关于java - 错误如下所述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29435933/

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