HQLとQBCの検索方式
2863 ワード
詳細な概念はpptで:
1.HQL
(1)Queryインタフェース Object uniqueResult()は、一致条件の一意のインスタンスを返し、ない場合nullです.
2.QBC(Criteriaインタフェース、Criterionインタフェース、Expressionクラス<なので設定条件はこのメソッド内>)
(1)セッション内作成 Criteria createCriteria(class class)永続化クラス名 (2)Criteriaインタフェース Object uniqueResult() List list() Criterion add(Criterion criterion)クエリー結果にいくつかの制限を追加 (3)Criterionインタフェース,Restictions(実装クラス),内部は静的メソッドである.
(4)Criteria addOrder(Order order)ソート (5)Static Order asc(String name) Static Order desc(String propertyName)
(6)Query List list()各行に複数の結果が含まれている場合、結果はobject[]を返し、クエリ結果はlistとなります.
(7)クエリー部分の属性: session.creatQuery(「select s.name,s.age from Studio as」)----フリーデータ をクエリー
List list =query.list();
for(int i=0;i {
Object[] obj =(Object[])list.get(i);
obj[0]はnameである.obj[1]はage
} Query query = session.creatQuery("select new Student(s.name,s.age) from Student s");返される離散的な値は、オブジェクトとして見られます.
ただし、この2つのパラメータを含むコンストラクション関数をStudentクラスに追加する必要があります.
(7)接続クエリー(内部接続、左外部接続、右外部接続) Query query =session.creatQuery("form Team as t inner join t.students");innerは を省略できます
2つのテーブルの並列セットを返し、1つのobject[]を返し、object[0]が1枚目、object[1]が2枚目を返します.
SQL:select *from team join student on team.id = student.team_id; hibernate.cfg.xml
true クエリーのフォーマット select * from team left outer join student on team.id=student.team_id
左外部ジョイン(左テーブルを参照物、すなわち左テーブルの内容が存在する)は、右外部ジョインとは反対 select * from team right outer join student on team.id=student.team_id
1.HQL
(1)Queryインタフェース
2.QBC(Criteriaインタフェース、Criterionインタフェース、Expressionクラス<なので設定条件はこのメソッド内>)
(1)セッション内作成
(4)Criteria
(6)Query
(7)クエリー部分の属性:
public class Student extends Person
{
private String id;
private String name;
private Set course = new HashSet();
private int age;
private String cardId;
public class Course
{
private String id;
private String name;
private Set students = new HashSet();
public class Team
{
private String id;
private String teamName;
private Set students = new HashSet();
List list =query.list();
for(int i=0;i
Object[] obj =(Object[])list.get(i);
obj[0]はnameである.obj[1]はage
}
ただし、この2つのパラメータを含むコンストラクション関数をStudentクラスに追加する必要があります.
Student student =(Student)list.get(i);
student.getName();
student.getAge();
(7)接続クエリー(内部接続、左外部接続、右外部接続)
2つのテーブルの並列セットを返し、1つのobject[]を返し、object[0]が1枚目、object[1]が2枚目を返します.
SQL:select *from team join student on team.id = student.team_id;
左外部ジョイン(左テーブルを参照物、すなわち左テーブルの内容が存在する)は、右外部ジョインとは反対