2017-03-29 40 views
-2

原始查詢:排序在GreenDAO

SELECT * FROM SAVED_JOB2 S, JOB J WHERE J._id=S._id ORDER BY DATE_SAVED DESC 

我怎樣才能實現排序列在連接表。我曾嘗試過:

QueryBuilder<Job> queryBuilder = daoSession.queryBuilder(Job.class); 
queryBuilder.join(JobDao.Properties.Id, SavedJob2.class, SavedJob2Dao.Properties.Id); 
List<Job> list = queryBuilder1.list(); 

這個正常的JOIN工作得很完美。但是我需要排序表SavedJob中的date_saved列。

我想加入這一行:

queryBuilder.orderDesc(SavedJob2Dao.Properties.date_saved); 

,但此行返回此錯誤:

Property 'date_saved' is not part of com.xxx.xxx.db.JobDao

Table JobDao: 
id (PK) 
title 
description 
requirements 
allowance 
type 
status 

Table SavedJobDao: 
id (PK autoincrement) 
j_id (FK to JabDao) 
date_saved 
status 
+0

Ahow類'JobDao' – Jens

+0

@Jens表更新 –

+0

GreenDAO在對象結構上工作,而不是在表上。所以我們需要Java類而不是表 – Jens

回答

0

你不需要做任何與greenDao JOIN。它與對象一起工作,所以在你的保存工作中你應該有一個對象Job而不是job_id。

所以你可以通過date_saved命令,但只在savedJob中搜索,你不需要JOIN。

有很多例子。官方文檔真棒!

+0

我需要改變我的表結構在汽車發電機? –

+0

是的!這裏有一個簡單的例子:http://www.oscargarrucho.com/blog/2016/base-de-datos-con-greenDao/ – oskarko