Catatan error yang Master hadapi dan penyelesaiannya semasa membangunkan sistem web menggunakan framework Spring 4 MVC dengan DOJO, Hibernate, dan Java Persistence API (JPA).

Cabaran besar semasa membangunkan sistem adalah untuk mengenalpasti punca sesuatu ralat (error). Jika tidak tahu punca masalah macam mana kita nak selesaikan sesuatu masalah?
Menyelesaikan sesuatu masalah dalam kod sistem adalah melalui proses debugging atau dalam Bahasa Malaysia disebut nyahralat.


How to debug SPRING MVC application in Spring Tool Suite?

  1. Pilih Window-->Show View--> Servers. Right Click pada nama server pada panel Servers,
  2. Pilih "Restart in Debug" atau pilihan Debug,
  3. Tambah breakpoints dalam kod,
  4. Klik kanan pada nama aplikasi anda, pilih Debug As --> Debug on Server.
  5. Gunakan bebutang F5 untuk masuk ke dalam method.
  6. Gunakan bebutang F6 untuk ke Statement seterusnya.

Page Not Found 404

  • Periksa jika link pada View tidak sama dengan apa yang set pada Controller.

Unable to load Undefined status 405

  • Periksa jika Primary Key tidak dibawa dalam View.
  • Periksa jika URL tak sama dengan RequestMapping dalam Controller.
  • Periksa jika nama Form tak sama dengan nama form dalam dijit.registry terutamanya untuk aktiviti yang melibatkan penggunaan pustaka DOJO.

Bad Method 500

  • Pastikan bahawa ada function untuk request mapping tersebut.

Caused by: org.hibernate.AnnotationException: Mixing insertable and non insertable columns in a property is not allowed:

  • Pastikan bahawa pada property yang disebutkan dalam error tersebut jika menggunakan composite key haruslah sama kedua-duanya sama ada insertable atau non-insertable.

Kesemua Apa yang Diharapkan Berfungsi Pada Javascript Tidak Menjadi

  • Ini adalah satu benda yang sangat membuang masa di mana kesemua function contohnya on field validation tak jalan, rupa-rupanya ada satu tanda ' dalam data-dojo-props="required:true'". Adus tensionnya la sebab makan masa 2 hari nak jumpa..... huhuhu
  • semak property data-dojo-props kerana selalunya masalah di sana.
  • pastikan tiada path yang sama nama walaupun pada page berbeza terutamanya untuk page parent dan child.

org.hibernate.annotations.common.AssertionFailure: Declaring class is not found in the inheritance state hierarchy

  • jangan letakkan @Id dalam embedded composite key.

Property 'xxxxx' not found on type yyyyyyy

  • pastikan anda sediakan getter dan setter.

Illegal attempt to dereference collection when querying using JPA relations

  • https://stackoverflow.com/questions/34975468/illegal-attempt-to-dereference-collection-when-querying-using-jpa-relations

query specified join fetching, but the owner of the fetched association was not present in the select list

  • jangan guna JOIN FETCH untuk function yang melibatkan counting kerana FETCH akan memaksa eager

com.sun.jdi.InvocationException occurred invoking method

The root cause is that when debugging the java debug interface will call the toString() of your class to show the class information in the pop up box, so if the toString method is not defined correctly, this may happen.

EclipseLink and JPA columns of table not showing up

Masa nak generate entity class gunakan JPA Tool, ada satu table ni tak tunjukkan semua column yang dia ada, dan bila generate, class tersebut tidak generated.

  • refresh data source
  • Tedi dapat error ni sebab pada asalnya tergunakan nama package yang sama macam nama kelas, jadi Tedi terpaksa cleanup JPA project tersebut, mungkin ada cache di mana-mana yang menyebabkan STS fikir kelas itu adalah package.

Search menggunakan like pattern via domain.Example

https://kalliphant.com/spring-data-jpa-querybyexample-tutorial/

Pengesahan Format Kad Kredit menggunakan Regular Expression

https://www.regular-expressions.info/creditcard.html
 

Tak dapat connect ke MSSQL Server 2012

Ini memang satu error yang gila tak masuk di akal. Kita nak setting semua betul dan connection string yang digunakan juga telah dipakai di beberapa komputer lain sebelum ini. Alih-alih di komputer baru connection string tu tak jalan pula.

  1. Apakah perbezaannya? Bezanya cuma komputer baru ada instance SQLEXPRESS sebab ada juga db mySQL.
  2. Nama instnce dah diletakkan dalam beberapa format tapi tetap juga tak dapat connect sebab tak jumpa db.
  3. SQL server config juga semua dah betul, TCP/IP pun enabled.
  4. DB yang sama boleh saja connected daripada HeidiSQL menggunakan setting yang sama, masalahnya Heidi SQL ni tiada paparan connection string yang berjela-jela tu.
  5. Akhirnya setelah melalui beberapa pembacaan, Master memutuskan untuk buang nombor port daripada connection string... alih-alih jalan pula....
  6. Tu aja? buang nombor port 1443 tu? ish ish ish

1 Oktober 2017