現在、既存のWebアプリ改修を行っています。
改修作業の中に「既存ページで表示しているデータの種類を追加」というものがあるのですが、LEFT JOINにて結合したデータの使用方法がわからず躓いてしまっております。
【環境】
Windows 7
SQLServer 2014
Java 7
Tomcat 7
Eclipse LUNA 4.4.2
SQL
1SELECT 2 kokyaku.dbo.M_KOKYAKU.KOKYAKU_CD kokyakuCd, 3 kokyaku.dbo.M_KOKYAKU.LAST_NAME lastName, 4 kokyaku.dbo.M_KOKYAKU.FIRST_NAME firstName, 5 kokyaku.dbo.M_KOKYAKU.CHU_FLG chuFlg, 6 kokyaku.dbo.M_KOKYAKU.URGENCY_FLG urgencyFlg, 7 MAX(kokyaku.dbo.M_RIREKI.BASE_TIME) baseTime, 8 kokyaku.dbo.M_SEISANSYA.FIRST_NAME seiFirstName, 9 kokyaku.dbo.M_SEISANSYA.LAST_NAME seiLastName, 10 kokyaku.dbo.M_GYOUSYA.FIRST_NAME gyoFirstName, 11 kokyaku.dbo.M_GYOUSYA.LAST_NAME gyoLastName 12FROM 13 kokyaku.dbo.M_KOKYAKU 14 LEFT JOIN kokyaku.dbo.M_RIREKI ON kokyaku.dbo.M_KOKYAKU.KOKYAKU_CD = kokyaku.dbo.M_RIREKI.KOKYAKU_CD 15 LEFT JOIN kokyaku.dbo.M_SEISANSYA ON kokyaku.dbo.M_KOKYAKU.SEISANSYA_CD = kokyaku.dbo.M_SEISANSYA.SEISANSYA_CD 16 LEFT JOIN kokyaku.dbo.M_GYOUSYA ON kokyaku.dbo.M_KOKYAKU.GYOUSYA_CD = kokyaku.dbo.M_GYOUSYA.GYOUSYA_CD 17WHERE kokyaku.dbo.M_KOKYAKU.DEL_FLG='0' and kokyaku.dbo.M_KOKYAKU.FACILI_CD = 100001 18 AND kokyaku.dbo.M_KOKYAKU.CHU_FLG='0' 19GROUP BY kokyaku.dbo.M_KOKYAKU.KOKYAKU_CD, 20 kokyaku.dbo.M_KOKYAKU.LAST_NAME, 21 kokyaku.dbo.M_KOKYAKU.FIRST_NAME, 22 kokyaku.dbo.M_KOKYAKU.CHU_FLG, 23 kokyaku.dbo.M_KOKYAKU.URGENCY_FLG, 24 kokyaku.dbo.M_SEISANSYA.FIRST_NAME, 25 kokyaku.dbo.M_SEISANSYA.LAST_NAME, 26 kokyaku.dbo.M_GYOUSYA.FIRST_NAME, 27 kokyaku.dbo.M_GYOUSYA.LAST_NAME 28Order by kokyaku.dbo.M_KOKYAKU.LAST_KANANAME asc
上記のSQLをJava上で発行・実行し、結果をListへ返し、JSPでListデータを参照し画面上に表示するものなのですが、
Java
1SqlLogRegistry registry = SqlLogRegistryLocator.getInstance(); 2if (registry != null) { 3 SqlLog sqlLog = registry.getLast(); 4 System.out.println(sqlLog.getCompleteSql()); 5}
を使用することで、SQLが正常に発行されていることは確認が出来ており、
SQLServer上で上記SQLを使用して正常にSELECTが行えることは確認が出来ているのですが、実際にWebアプリで使用するとエラーで止まってしまいます。(調べたところ、今回追加で取得したデータ以外は正常に通っていそうでした。)
Java
1重大: サーブレット action のServlet.service()が例外を投げました 2java.sql.SQLException: 列名 'seiFirstName' が無効です。 3 at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:372) 4 at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2886) 5 at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2328) 6 at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:638) 7 at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:506) 8 at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:979) 9…
Entityクラスへは
Java
1/** seiFirstNameプロパティ */ 2@Column(name = "seiFirstName", length = 50, nullable = false, unique = false) 3private String seiFirstName; 4 5/** 6 * @return seiFirstName 7 */ 8@Deprecated 9public String getSeiFirstName() { 10 return seiFirstName; 11} 12/** 13 * @param seiFirstName セットする seiFirstName 14 */ 15@Deprecated 16public void setSeiFirstName(String seiFirstName) { 17 this.seiFirstName= seiFirstName; 18}
のように追加で取得になるデータの追記を行いました。
上記作業で実行できるものと思い込んでいたのですが、エラーが出てしまう原因は何なのでしょうか。
有識者の方々のお力をお借りできますと幸いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。