gpt4 book ai didi

java - Java 和 Hibernate 中外键的使用

转载 作者:行者123 更新时间:2023-11-29 07:52:04 25 4
gpt4 key购买 nike

我正在尝试开发一个网络应用程序,我想知道是否有一种方法可以在不编写大量代码的情况下使用外键。

我的学员.java

@Entity
public class Trainees {

@Id
@GeneratedValue
private int traineesID;
private int groupsID;
@ManyToOne
@JoinColumn(name = "status_trainee")
private String status_TraineeID;
private int customersID;
private String name;
private String surname;
private String phoneDetails;
private String email;

public Trainees(){

}

public Trainees(String name, String surname, String phoneDetails, String email, int id, int groupsID, String status_TraineeID, int customersID) {
super();
this.name = name;
this.surname = surname;
this.email = email;
this.phoneDetails = phoneDetails;
this.groupsID = groupsID;
this.status_TraineeID = status_TraineeID;
this.customersID = customersID;
}

//getters and setters

@Override
public boolean equals(Object object) {
if (object instanceof Trainees){
Trainees contact = (Trainees) object;
return contact.traineesID == traineesID;
}

return false;
}

@Override
public int hashCode() {
return traineesID;
}
}

Status_Trainee.java

@Entity
public class Status_Trainee {

@Id
@GeneratedValue
private int status_traineeID;
private String value;

public Status_Trainee(){

}

public Status_Trainee(String value, int id) {
super();
this.value = value;
}

//getters and setters

@Override
public boolean equals(Object object) {
if (object instanceof Status_Trainee){
Status_Trainee value = (Status_Trainee) object;
return value.status_traineeID == status_traineeID;
}

return false;
}

@Override
public int hashCode() {
return status_traineeID;
}
}

错误:由以下原因引起:org.hibernate.AnnotationException:uaiContacts.model.Trainees.status_TraineeID 上的 @OneToOne 或 @ManyToOne 引用未知实体:String

所以我的目标是,使用 Trainees 表和类,我可以使用外键检索 Status_Trainee 表的值。例如:如果外键 ID 为 2,那么它将从 status_trainee 表中检索主键与外键 ID 匹配的字符串。

我正在使用模型、 Controller 、hibernate 和 angularjs 来显示到 View ,我真的不想通过所有这些传递表格,我认为使用 ManyToOne 或 JoinColumns 之类的东西可以检索值?

感谢大家的帮助!

最佳答案

您应该在 Trainee 中添加对 StatusTrainee 的引用,并使用 OneToMany、ManyToOne 或 OneToOne 对其进行注释。根据关系类型,您需要 StatusTrainee 列表或仅需要 StatusTrainee。

提示:不要在类名中使用下划线。

关于java - Java 和 Hibernate 中外键的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26144506/

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