JavaFX TableViewでデータベースからデータを表示しようとすると、小さな問題が発生します。JFX TableViewとHQLクエリの問題
私は私がいない、彼らはに属している教室と一緒にすべての学生を取得するには、このクエリを使用しています。このテーブルは
classroom_id | classrooName | classroomYear
--------------|--------------|-------------
1 | TestClass | 2016/2017
教室のテーブルに接続されたStudentテーブルに
user_id | name | nick | password | surname | classroom_id
---------|-----------|-----------|-----------|-----------|--------------
2 | AAA | studentA | test123 | AAA | 1
3 | BBB | studentB | test321 | BBB | 1
を持っていますここで問題を起こす。値を印刷しようとすると、すべて正しいです。今
Select student from Student student Join Fetch student.classroom
、実際の問題はclassroomNameとclassroomYearがthisのように、テーブルビューに表示されていないということです(Jméno - Rok-教室の年、教室名、名前、Příjmení - 姓、ニック - - ニック、Třída)
これらの2つの列のセル値の工場は今
classroomNameColumn.setCellValueFactory(new PropertyValueFactory<>("classroomName"));
classroomYearColumn.setCellValueFactory(new PropertyValueFactory<>("classroomYear"));
あり、私はすべてのデータが表示された取得する得ることができた唯一の方法は、2として、それらを追加私のJavaクラスにclassroomNameとclassroomYearを追加しました列の余分な列データベース。私の考えるIDとそれらを結びつけるという目的を破っているのですが、私のTableViewにClassroomのデータを表示する方法はありますか?
EDIT:あなたが使用するJavaクラス
@Entity
public class Student extends User{
private Classroom classroom;
public Student() {
}
public Student(String name, String surname, String nick, String password, Classroom studentClassroom) {
super(name, surname, nick, password);
this.classroom = studentClassroom;
}
@ManyToOne
@JoinColumn(name = "classroom_id")
public Classroom getClassroom() {
return classroom;
}
public void setClassroom(Classroom classroom) {
this.classroom = classroom;
}
}
@Entity
public class Classroom {
private SimpleStringProperty classroomName = new SimpleStringProperty();
private SimpleStringProperty classroomYear = new SimpleStringProperty();
private int classroom_id;
public Classroom() {
}
public Classroom(String name, String year) {
classroomName.set(name);
classroomYear.set(year);
}
@Column(nullable = false)
public String getClassroomName() {
return classroomName.get();
}
public SimpleStringProperty nameProperty() {
return classroomName;
}
public void setClassroomName(String name) {
this.classroomName.set(name);
}
@Column(nullable = false)
public String getClassroomYear() {
return classroomYear.get();
}
public SimpleStringProperty classroomYearProperty() {
return classroomYear;
}
public void setClassroomYear(String year) {
this.classroomYear.set(year);
}
@Id
@GenericGenerator(name="id" , strategy="increment")
@GeneratedValue(generator="id")
public int getClassroom_id() {
return classroom_id;
}
public void setClassroom_id(int classroom_id) {
this.classroom_id = classroom_id;
}
}
素晴らしいですが、魅力的です。教室がないので、私はそれが学生クラスの年と名前が分かったが、私はそれを書く方法を知らなかった。どうもありがとうございました。 –