47 return std::tie (ID_,
Name_);
64 static QString ClassName ()
71 return std::tie (ID_, StudentID_, Age_, Year_);
88 static QString ClassName ()
95 return std::tie (ID_,
Name_);
105 struct Student2Lecturer
111 static QString ClassName ()
113 return "Student2Lecturer";
116 auto AsTuple ()
const 118 return std::tie (ID_, StudentID_, LecturerID_);
133 void OralFKeyTest::testBasicFKeys ()
137 auto student = Util::oral::AdaptPtr<Student, OralFactory> (db);
138 auto studentInfo = Util::oral::AdaptPtr<StudentInfo, OralFactory> (db);
142 { { 0,
"Student 1" }, { 0, 0, 18, 1 } },
143 { { 0,
"Student 2" }, { 0, 0, 19, 1 } },
144 { { 0,
"Student 3" }, { 0, 0, 19, 2 } },
147 for (
auto& [stud, info] : list)
149 student->Insert (stud);
150 info.StudentID_ = stud.ID_;
151 studentInfo->Insert (info);
154 namespace sph = oral::sph;
156 const auto& selected = student->Select (sph::f<&Student::ID_> == sph::f<&StudentInfo::StudentID_> &&
157 sph::f<&StudentInfo::Age_> > 18);
159 QCOMPARE (selected, expected);
QSqlDatabase MakeDatabase(const QString &name=":memory:")
static QString ClassName()
BOOST_FUSION_ADAPT_STRUCT(Student, ID_, Name_) struct StudentInfo