Fórum

Select Distinct Custom Query didn't work Liferay 6.0.6..Need Help

thumbnail
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

	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