Dear Bro Arif ,

Saya ubah-ubah source code saya untuk method getCurrencyTodayByList jadi error 
yah ? errornya "cannot find symbol, Symbol : method 
addAll(java.lang.util.List<java.lang.Object>)" ini terjadi karena berada di 
dalam satu buah Kelas yang di judulnya ada gini 
"abstract public class AbsMasterDataApplication<T extends GeneralEntity, E 
extends GeneralVO> "

dan juga "public synchronized <T> List<T> findGeneralData(String p_sqlString, 
Map<String, Object> p_whereClause)"

saya kirimkan kan source codenya. kalau memang masih tidak bisa di deteksi , 
saya upload deh satu buah projectnya.

tks  brow Arif Rachim


 Best Regards,


Andi Kusnadi,Skom
0813 1883 92 37
programmer .net, java, streamezzo




________________________________
From: Arif Rachim <[EMAIL PROTECTED]>
To: jug-indonesia@yahoogroups.com
Sent: Thursday, October 23, 2008 10:59:24 AM
Subject: Re: [JUG-Indonesia] Bagaimana mencegah "Erasure" pada Generic ?


Dear Pak Andi Kusnaidi,

Saya meterjemahkan pertanyaan bapak kedalam 2 poin :

1. Bagaimana cara mengembalikan tipe data generic yang sama dengan
tipe data class yg di passing ke dalam parameter
2. Kenapa persist entity tidak berhasil di save hibernate ?

Jawaban no 1 bisa bapak ganti koding bapak dengan cara berikut

public static synchronized <T> List<T>
findGeneralDataWith Native(String p_sqlString, Map<String, Object>
p_whereClause, Class<T> p_resultClazz) {
....
return (List<T>)l_query. getResultList( )
}

Problem ini sebenernya muncul karena query hibernate belum menerapkan
fungsi generic, dan problem ini dibawa sampai ke spec jpa yg ada
sekarang.

jawaban no 2. Ini bisa disebankan banyak faktor, tapi umumnya
kejadiannya dikarenakan session yg dimiliki oleh thread yg mengakses
entity tersebut sudah di closed, atau transaksi sudah di commit.

Semoga jawabannya membantu,

Sekian terimakasih.

2008/10/23 ANDI KUSNADI <[EMAIL PROTECTED] com>:
> Dear Pak Arif Rachmin ,
>
> Saya sudah baca-baca tulisan bapak dari awal sampai akhir , saya punya
> AbstractKelas sebeperti yang di attachment.
>
> method method yang semunya berawalan find***  , sebagai contoh   "public
> synchronized List findGeneralData( String p_sqlString) " ,  saya mau gunakan
> ArrayList-nya return dengan tipe yang di request, misalnya berupa kelas
> Employee.class
> sedangkan pada Query nya yang getResultList( ) itu returnya List<?> , terus
> terang saya kurang ngerti juga tentang erasure, generic yang lebih mendalam.
>
> dan saya mau menambahkan mensave nya menjadi persistent itu enggak
> berhasil-berhasil kira-kira yang perlu di tambahin di mana yah ?
>
> tks.
>
>
> Best Regards,
>
> Andi Kusnadi,Skom
> 0813 1883 92 37
> programmer .net, java, streamezzo
>
> ____________ _________ _________ __
> From: Arif Rachim <[EMAIL PROTECTED] com>
> To: jug-indonesia@ yahoogroups. com
> Sent: Wednesday, October 22, 2008 8:09:16 PM
> Subject: Re: [JUG-Indonesia] Bagaimana mencegah "Erasure" pada Generic ?
>
> JPA mana nih bos ??
>
> Bukannya kalau pakai entityManager masih seperti ini
>
> Query query = entityManager. createNativeQuer y("select * from a",A.class);
> List a = query.list() ; ????
>
> Liat object query sama sekali ga ada generic2nya :( sangat disayangkan.
>
>
> On 10/22/08, sm96 <syaiful.mukhlis@ gmail.com> wrote:
>>
>> gue tahunya cara kayak gitu udah dipake di JPA
>>
>> On 10/22/08, Gardiary Jantan <[EMAIL PROTECTED] com> wrote:
>> > Btw, istilah type casting atau type saving itu apa yaa?
>> > Bingung ama istilah2 beginian
>> >
>> >
>> > Gardiary Rukhiat
>> > http://gardiary. wordpress. com/
>> >
>> > --- On Tue, 10/21/08, Arif Rachim <[EMAIL PROTECTED] com> wrote:
>> > From: Arif Rachim <[EMAIL PROTECTED] com>
>> > Subject: Re: [JUG-Indonesia] Bagaimana mencegah "Erasure" pada Generic ?
>> > To: jug-indonesia@ yahoogroups. com
>> > Date: Tuesday, October 21, 2008, 6:00 AM
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > Pertanyaan yg sangat bagus :)
>> >
>> > Kalau sekedar buat menghilangkan type casting bisa tempatin generic di
>> >
>> > level method
>> >
>> >
>> >
>> > public class Sample {
>> >
>> > public static void main(){
>> >
>> > System.out.println( Bo.haloBow( ));
>> >
>> > }
>> >
>> >
>> >
>> > static class Bo{
>> >
>> > public static <T> T haloBow(){
>> >
>> > return (T) "Hallow";
>> >
>> > }
>> >
>> > }
>> >
>> > }
>> >
>> >
>> >
>> > Nah ini bisa kita manfaatkan jadi cikal bakal teknik yg saya sebut
>> >
>> > fishing :). Coba cek DAO SAMPAH ini
>> >
>> >
>> >
>> > http://www.hibernat e.org/328. html
>> >
>> >
>> >
>> > Teknik ini juga bisa saya bilang SAMPAH !!!
>> >
>> > http://www.ibm. com/developerwor ks/java/library/ j-genericdao. html
>> >
>> >
>> >
>> > Mereka coba implementasiin generic dao, tapi karena kena ERRASURE,
>> >
>> > mereka akalin dengan extend DAO tersebut dan cara mengambil
>> >
>> > parameternya menggunakan
>> >
>> > (Class<T>) ((ParameterizedType )
>> >
>> > getClass().getGener icSuperclass( )).getActualType Arguments( )[0];
>> >
>> >
>> >
>> > AUCCHHH bener2 teknik sampah.
>> >
>> >
>> >
>> > Sebenernya kita bisa pakai cara lain untuk tetap bisa mendapatkan Type
>> >
>> > save dan mendapatkan data type dari generic tersebut tanpa kehilangan
>> >
>> > the power of type saving.
>> >
>> >
>> >
>> > Saya belum tau di internet istilah pattern ini apa ? Tapi kalau boleh
>> >
>> > saya namakan the Fishing Pattern. hahahahahaha.
>> >
>> >
>> >
>> > cek code berikut
>> >
>> >
>> >
>> > public class DAO<T> {
>> >
>> > private Class<T> clazz;
>> >
>> >
>> >
>> > public DAO(Class<T> clazz){
>> >
>> > this.clazz = clazz;
>> >
>> > }
>> >
>> >
>> >
>> > public T persist(T t){
>> >
>> > // get the type here and do something with JPA
>> >
>> > return t;
>> >
>> > }
>> >
>> >
>> >
>> > public static <T> DAO<T> newInstance( Class<T> clazz){
>> >
>> > return new DAO<T>(clazz) ;
>> >
>> > }
>> >
>> > }
>> >
>> >
>> >
>> > Nah kelebihan dari cara diatas, pada saat instantiate di saat runtime,
>> >
>> > kita tetep dapat menyimpan type dari dao kita
>> >
>> >
>> >
>> > public static void main(String [] args){
>> >
>> > DAO<Balance> daoBal = DAO.newInstance( Balance.class) ;
>> >
>> > daoBal.persist( new Balance());
>> >
>> > }
>> >
>> >
>> >
>> > Tak ada type casting, type save bisa dijamin, contohnya kalau kita
>> >
>> > passing class selain Balance class tentu akan compilation error sebab
>> >
>> > DAO typena Balance, dan type class bisa dibaca di runtime.
>> >
>> > BWAHAHAHAHAHAHA.
>> >
>> >
>> >
>> > Best Regards,
>> >
>> >
>> >
>> > 2008/10/20 Dedy Alamsyah <[EMAIL PROTECTED] com>:
>> >
>> >> Dear All Master !
>> >
>> >>
>> >
>> >> Kalau ketemu kasus Erasure gimana cara solvenya yah ?
>> >
>> >>
>> >
>> >> thank in advance !
>> >
>> >>
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>>
>> --
>> syaiful.mukhlis
>> gtalk:syaiful. mukhlis@ gmail.com
>
>
> 
    


      

Kirim email ke