Oracle 冬眠一个人一个人一个实体
我有三张表:大学(id,姓名),团体(id,姓名,大学id),学生(id,姓名,号码,团体id)。 一所大学有许多小组,一个小组有许多学生 我的POJO看起来像这样:Oracle 冬眠一个人一个人一个实体,oracle,hibernate,one-to-many,many-to-one,Oracle,Hibernate,One To Many,Many To One,我有三张表:大学(id,姓名),团体(id,姓名,大学id),学生(id,姓名,号码,团体id)。 一所大学有许多小组,一个小组有许多学生 我的POJO看起来像这样: @Entity(name = "Student") public class Student { @SequenceGenerator(name = "genStudent",sequenceName = "STUDENTSEQ") @Id @GeneratedValue(generator = "genS
@Entity(name = "Student")
public class Student {
@SequenceGenerator(name = "genStudent",sequenceName = "STUDENTSEQ")
@Id
@GeneratedValue(generator = "genStudent")
private int id;
@Column(name = "name")
private String name;
@Column(name = "facNum")
private String facNum;
@ManyToOne
private UniGroup group;
public UniGroup getGroup() {
return group;
}
public void setGroup(UniGroup group) {
this.group = group;
}
public Student(){
}
... getters and setters
}
@Entity
public class UniGroup {
@SequenceGenerator(name = "genGroup",sequenceName = "UNIGROUPSEQ")
@Id
@GeneratedValue(generator = "genGroup")
private int id;
@Column(name = "administrativeName")
private String administrativeName;
@OneToMany(mappedBy = "group",cascade=CascadeType.ALL)
private List<Student> students;
@ManyToOne
private University university;
... getters and setters
}
@Entity
public class University {
@SequenceGenerator(name = "genUniversity",sequenceName = "UNIVERSITYSEQ")
@Id
@GeneratedValue(generator = "genUniversity")
private int id;
@Column(name = "name")
private String name;
@OneToMany(mappedBy = "university",cascade=CascadeType.ALL)
private List<UniGroup> groups;
public University(){
groups = new ArrayList<UniGroup>();
}
当试图保存或显示某个内容时。请提供帮助。您应该做的第一件事是在应用@ManyToOne的位置添加@JoinColumn注释,否则将应用默认值@JoinColumn具有参数名,用于指定数据库中用于关系的列。
查看更多信息您应该做的第一件事是在应用@ManyToOne的位置添加@JoinColumn注释,否则将应用默认值@JoinColumn具有参数名,用于指定数据库中用于关系的列。
查看更多信息我在这里呆了很长时间,直到我意识到我所要做的就是@JoinColumn。我尝试重命名我的对象字段、数据库字段以使查询正常工作。。。我真蠢。我在这里呆了这么久,直到我意识到我所要做的就是@JoinColumn。我尝试重命名我的对象字段、数据库字段以使查询正常工作。。。我真蠢。
public class StudentSystemUtil {
private SessionFactory sessFac;
public StudentSystemUtil(){
sessFac = new Configuration().configure().buildSessionFactory();
}
@SuppressWarnings("unchecked")
public void showGroups(){
Session session = sessFac.getCurrentSession();
try{
session.beginTransaction();
Query q = session.createQuery("from UniGroup");
List<UniGroup> groups = (List<UniGroup>)q.list();
for(UniGroup g:groups){
System.out.println("Group: "+g.getId()+" "+g.getAdministrativeName());
for(Student s:g.getStudents()){
System.out.println(s.getName()+" "+s.getGroup().getAdministrativeName());
}
}
session.getTransaction().commit();
}catch(Exception e){
System.out.println("Error: "+e.getMessage());
}
}
public void saveGroup(UniGroup group){
Session session = sessFac.getCurrentSession();
try{
session.beginTransaction();
session.save(group);
session.getTransaction().commit();
}catch(Exception e){
if(session.getTransaction() != null){
session.getTransaction().rollback();
}
System.out.println("Error: "+e.getMessage());
}
}
@SuppressWarnings("unchecked")
public void showUniversityes(){
Session session = sessFac.getCurrentSession();
try{
session.beginTransaction();
Query q = session.createQuery("from University");
List<University> universityes = (List<University>)q.list();
for(University u:universityes){
System.out.println("University: "+u.getId()+" "+u.getName());
for(UniGroup g:u.getGroups()){
System.out.println(g.getAdministrativeName());
for(Student s:g.getStudents()){
System.out.println("Student "+s.getName());
}
}
}
session.getTransaction().commit();
}catch(Exception e){
System.out.println("Error: "+e.getMessage());
}
}
public void saveUniversity(University uni){
Session session = sessFac.getCurrentSession();
try{
session.beginTransaction();
session.save(uni);
session.getTransaction().commit();
}catch(Exception e){
if(session.getTransaction() != null){
session.getTransaction().rollback();
}
System.out.println("Error: "+e.getMessage());
}
}
public void closeSessionFactory(){
sessFac.close();
}
}
Error: Could not execute JDBC batch update
Error: could not execute query