Tuesday 17 July 2012

DOJO 1.7: Compound or Composite Key in DataGrid + JsonRestStore

Isu: 

Penggunaan id komposit pada property idAttribute, penggunaan idAttribute yang salah akan menyebabkan data yang berulang dipaparkan.


Framework: 

Spring 3 + DOJO 1.7 + JPA


dojox.data.JsonRestStore
dojox.grid.DataGrid


Penyelesaian:

1. Gunakan fungsi toJson() dalam kelas domain/POJO/model.


import flexjson.JSONSerializer;


...



public String toJson() {
     return new JSONSerializer().exclude("*.class").serialize(this);
}




2. Umpukkan nilai kepada property idAttribute. Contoh:




var poStore = new JsonRestStore({
target: "${listUrl}/ajaxUnits/${blockId}?", 
idAttribute:"id.toJson" , 
syncMode: true });

Dalam contoh di atas, id komposit itu dinamakan sebagai "id" di dalam kelas domain/POJO/objek dengan getter dan setter-nya. Contoh:


@Valid
@EmbeddedId
private CollegeHouseMainPK id;



public CollegeHouseMainPK getId() {
return this.id;
}


public void setId(CollegeHouseMainPK id) {
this.id = id;
}



Keyword yang digunakan untuk penyelesaian ini:


  • prevent duplicate data in datagrid
  • JsonRestStore idAttribute composite key
  • JsonRestStore identifier
  • redundant json data dojo datagrid

Penasihat

  • Osman Sulaiman, IKCM Sdn Bhd.







No comments: