#playframework-2.0 #jquery-datatables #ebean
#playframework-2.0 #таблицы данных #ebean
Вопрос:
Я использую ebean и play 2.2.3, у меня есть эти классы моделей (урезал их для ясности)
Студенты
public class Student extends Model implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "id")
public String id;
@Column(name = "reg_no", unique=true)
public String regNo;
@NotNull
@Required
@Column(name = "first_name")
public String firstName;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "student")
private List<StudentClass> studentClassList;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "student")
private List<StudentLevelDetails> studentLevelDetailsList;
public static Finder<String, Student> find = new Finder<String, Student>(
String.class, Student.class);
}
Уровни
public class Levels extends Model implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@NotNull
@Column(name = "id")
public Integer id;
@Size(max = 255)
@Column(name = "name", unique=true)
public String name;
public static Model.Finder<Integer, Levels> find = new Finder<Integer, Levels>(
Integer.class, Levels.class);
@OneToMany(cascade = CascadeType.ALL, mappedBy = "level")
private List<StudentLevelDetails> studentLevelDetailsList;
}
Классы
public class Classes extends Model implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "id")
public Integer id;
@Basic(optional = false)
@NotNull
@Required
@Column(name = "name", unique=true)
public String name;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "class1")
public List<StudentClass> studentClassList;
public static Finder<Integer, Classes> find =
new Finder<>(Integer.class, Classes.class);
}
Student_Level_Details
@Table(name = "student_level_details", uniqueConstraints = @UniqueConstraint(columnNames = {
"student", "type" }))
public class StudentLevelDetails extends Model implements Serializable {
public static enum Type {
@EnumValue("CL")
CURRENT_LEVEL,
@EnumValue("LAI")
LEVEL_ADMITTED_INTO
}
@Id
@Basic(optional = false)
@NotNull
@Column(name = "id")
public Integer id;
@Size(max = 2147483647)
@Column(name = "type")
public Type type;
@JoinColumn(name = "student", referencedColumnName = "id")
@ManyToOne(optional = false)
public Student student;
@JoinColumn(name = "level", referencedColumnName = "id")
@ManyToOne(optional = false)
public Levels level;
public static final Finder<Integer, StudentLevelDetails> find = new Finder<Integer, StudentLevelDetails>(
Integer.class, StudentLevelDetails.class);
}
Student_Class
@Table(name = "student_class", uniqueConstraints = @UniqueConstraint(columnNames = {"student", "type"}))
public class StudentClass extends Model implements Serializable {
public static enum Type {
@EnumValue("CC")
CURRENT_CLASS
}
@Id
@Basic(optional = false)
@NotNull
@Column(name = "id")
public Integer id;
@JoinColumn(name = "student", referencedColumnName = "id")
@ManyToOne(optional = false)
public Student student;
@JoinColumn(name = "class", referencedColumnName = "id")
@ManyToOne(optional = false)
public Classes class1;
@Column(name = "type")
public Type type;
}
я использую таблицы данных, я хочу создать запрос, который вернет данные для таблицы на основе значения фильтра из окна поиска.
Как мне создать такой запрос в ebean (я объясняю цель запроса на простом английском языке)
выберите имя пользователя из student, где имя пользователя, например, «фильтр поиска» или level.name например, «фильтр поиска» или class1.name например, «фильтр поиска», где уровень.Тип = CURRENT_LEVEL и class1.Тип = «CURRENT_CLASS».
итак, в основном меня смущает то, как объединить таблицы, чтобы получить одну результирующую таблицу
Спасибо.