は、私はこのような学生のテーブルを持って考えてみましょう:動的な属性名検索
student_id name address ... school employer
1 Chris 2 John UofJ J Limited
2 Ann 3 Doe UofD D limited
今私はschool = 'UofJ'
とemployer = 'J Limited'
を持っている学生のリストを見つける必要があります。簡単:
student_attribute_id student_id attribute_name attribute_value
1 1 school UofJ
1 1 company J Limited
1 2 school UofD
1 2 company D Limited
私のタスクがリストを見つけることです:
select * from student where school = 'UofJ' and employer = 'J Limited'
しかし、私の現実は、最後の2つの属性が列として学生のテーブルに格納されているが、別のテーブルに行としてstudent_attribute
と呼ばれていますこのstudent_attribute
テーブルの生徒IDは、依然としてschool = 'UofJ'
とemployer = 'J Limited'
に基づいています。私はどうすればいいのですか?
さらに、私はSpringboot JPSリポジトリを使用してクエリを実行していますので、SQLの方法またはJPAの方法の両方を解決することに喜んでいます。それぞれの参加を設定
ATTRIBUTE_VALUEは異なる型を含む文字列ですか?あなたは常に文字列を検索していますか?また数字と日付を検索する必要がありますか? –