Saya memiliki DAO seperti ini,
public String getCaseTypeById(String caseIdNumber) {
String caseType = null;
SqlQuery caseQuery =
new PQuery(getDataSource());
System.out.println("caseIdNumber --"+caseIdNumber);
caseType = (String)caseQuery.findObject(caseIdNumber);
System.out.println("before return");
return caseType;
}
dan pQuery adalah,
public PlanQuery(DataSource dataSource)
{
super();
setDataSource(dataSource);
BQueries bQueries = new BQueries();
setSql(bQueries.getSelectStandardCaseTypeQuery());
declareParameter(new SqlParameter("caseIdNumber",
Types.NUMERIC));
compile();
}
di mana getSelectStandardCaseTypeQuery berada,
public String getSelectStandardCaseTypeQuery() {
String selectCaseTypeByCaseId = null;
selectCaseTypeByCaseId =
" SELECT ct.C_CODE as c_code " +
" FROM " + getSchemaName() + ".csummary cs, " +
getSchemaName() + ".ctype ct " +
" WHERE cs.c_number = ? " +
" AND UPPER(ct.C_DESC_TEXT) = UPPER(cs.C_TYPE) ";
return selectCaseTypeByCaseId;
}
Sekarang pengembalian di atas berfungsi dengan baik. kontrol kembali ke DAO dan di DAO sysout dicetak tetapi setelah itu saya mendapatkan pengecualian sebagai,
[ PILIH ct.C_CODE sebagai c_type_code DARI gpt.csummary cs, gpt.ctype ct WHERE cs.c_number = ? DAN UPPER(ct.C_DESC_TEXT) = UPPER(cs.C_TYPE) ]; pengecualian bersarang adalah java.sql.SQLException: ORA-00942: tabel atau tampilan tidak ada
at org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:545)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:486)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
Pengecualian terbungkus: org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; tata bahasa SQL yang buruk [ PILIH ct.C_CODE sebagai c_type_code FROM gpt.csummary cs, gpt.ctype ct WHERE cs.c_number = ? DAN UPPER(ct.C_DESC_TEXT) = UPPER(cs.C_TYPE) ]; pengecualian bersarang adalah java.sql.SQLException: ORA-00942: tabel atau tampilan tidak ada.
Tapi kemudian ketika saya menjalankan hal yang sama di katak semuanya berfungsi dengan baik. Saya melihat skema koneksi DB semuanya diarahkan dengan benar. Tapi kenapa gagal di finObject di DAO. ada masukan?