Fórum
Select Distinct Custom Query didn't work Liferay 6.0.6..Need Help
Danial Mustofa Habibi, modificado 12 Anos atrás.
Select Distinct Custom Query didn't work Liferay 6.0.6..Need Help
Regular Member Postagens: 141 Data de Entrada: 01/11/11 Postagens Recentes
Hi there I got a problem when using custom query on liferay 6.0.6 , When I'm Using Select Distinct, the distinct syntax didn't work, I'm I missing something??
Here's my code on my finderIml
my Sql Query is
when i'm execute my sql query on mysql console it's work like this
but when I'm Trying to execute this code on liferay it return result like this
Here's my code on my finderIml
public List<jadwalkereta> searchJadwalKereta(String kotaAsal,String kotaTujuan,String tgl,int start,int end) throws SystemException
{
Session session = null;
try{
session = openSession();
SQLQuery query = session.createSQLQuery("select distinct jk.kode_jadwal_kereta as idKeberangkatan, " +
" k.kode_kereta as kode_kereta ," +
" k.nama_kereta as nama_kereta," +
" jk.jam_berangkat as jam_berangkat," +
" jk.jam_tiba as jam_tiba," +
" kl.jenis_kelas as jenis_kelas," +
" jk.tarif as tarif " +
"from jadwal_kereta jk, kereta k,kelas kl " +
" where jk.kode_kereta = k.kode_kereta " +
" and jk.kode_gerbong = kl.kode_gerbong " +
" and kl.kode_kereta = k.kode_kereta and " +
" jk.stasiun_asal = ? and jk.stasiun_tujuan = ? and k.tgl_berangkat like ? ");
query.addScalar("idKeberangkatan", Type.STRING);
query.addScalar("kode_kereta", Type.STRING);
query.addScalar("nama_kereta", Type.STRING);
query.addScalar("jam_berangkat", Type.STRING);
query.addScalar("jam_tiba", Type.STRING);
query.addScalar("jenis_kelas", Type.STRING);
query.addScalar("tarif", Type.INTEGER);
QueryPos qPos = QueryPos.getInstance(query);
qPos.add(kotaAsal);
qPos.add(kotaTujuan);
tgl = "%;"+tgl+";%";
qPos.add(tgl);
List<object[]> jadwalKeretaPil = (List<object[]>)QueryUtil.list(query, getDialect(), start, end);
List<jadwalkereta> jadwalKeretas = assembleJadwalKereta(jadwalKeretaPil);
return jadwalKeretas;
}catch(Exception e)
{
throw new SystemException(e);
}
finally{
closeSession(session);
}
}
private List<jadwalkereta> assembleJadwalKereta(List<object[]> jadwalKeretaPil)
{
List<jadwalkereta> jadwalKeretas = new ArrayList();
for(Object[]jadwal:jadwalKeretaPil)
{
JadwalkeretaImpl jadwalKereta = new JadwalkeretaImpl();
jadwalKereta.setKode_jadwal_kereta((String)jadwal[0]);
jadwalKereta.setKode_kereta((String)jadwal[1]);
jadwalKereta.setNamaKereta((String)jadwal[2]);
jadwalKereta.setJamBerangkat((String)jadwal[3]);
jadwalKereta.setJamTiba((String)jadwal[4]);
jadwalKereta.setJenisKelas((String)jadwal[5]);
jadwalKereta.setTarif((Integer)jadwal[6]);
jadwalKeretas.add(jadwalKereta);
}
return jadwalKeretas;
}
</jadwalkereta></object[]></jadwalkereta></jadwalkereta></object[]></object[]></jadwalkereta>
my Sql Query is
select DISTINCT k.kode_kereta, k.nama_kereta, jk.jam_berangkat, jk.jam_tiba, kl.jenis_kelas, jk.tarif
from jadwal_kereta jk, kereta k,kelas kl
where jk.kode_kereta = k.kode_kereta
and jk.kode_gerbong = kl.kode_gerbong
and kl.kode_kereta = k.kode_kereta
and jk.stasiun_asal = 'bandung'
and jk.stasiun_tujuan = 'yogyakarta'
and k.tgl_berangkat like '%;3;%'
when i'm execute my sql query on mysql console it's work like this
but when I'm Trying to execute this code on liferay it return result like this