最近、Netbeans と MySQL を使用して Spring+Hibernate アプリケーションを作成していますが、コード ブロックでいくつかの問題に直面しています。
public List listSystemProcess() {
List procesosSistema = null;
String hbQuery = "from TableProcess";
try {
Session hbSesion = HibernatePersistenceHandler.getSessionFactory().openSession();
Transaction tx = hbSesion.beginTransaction();
Query query = hbSesion.createQuery(hbQuery);
procesosSistema = query.list();
tx.commit();
hbSesion.close();
} catch (Exception e) {
e.printStackTrace();
}
return procesosSistema;
}
これはまったく機能しません。SQL 構文の例外に関連する何かが表示され、"select id2_1,uj8_,5sd_11 from tb_2_1..." の近くに構文エラーがあることがわかります。
HQL の代わりに SQLQuery を作成すると、完全に機能しますが、単一のプロセスごとにこれを行う必要があるため、これを行うのは便利ではありません。これは面倒であり、JDBC を使用する場合とほとんど同じです。
これは機能します:
String hbQuery = "select p.id,p.nombre,p.descripcion,p.frecuencia_uso,t.nombre "
+ "from tb_proceso_sistema p inner join tb_tipo_proceso t "
+ "on p.tb_tipo_proceso_id = t.id";
Query query = hbSesion.createSQLQuery(hbQuery);
しかし、これを行うと、jsp も少し変わります。
<c:forEach items="${procesosSistema}" var="proceso">
<tr onmouseover="this.style.backgroundColor='#ffff66';"
onmouseout="this.style.backgroundColor='#d4e3e5';">
<td><c:out value="${proceso[0]}"/></td>
<td><c:out value="${proceso[1]}"/></td>
<td><c:out value="${proceso[2]}"/></td>
<td><c:out value="${proceso[3]}"/></td>
<td><c:out value="${proceso[4]}"/></td>
<td></td>
</tr>
</c:forEach>
それ以外の:
<c:forEach items="${procesosSistema}" var="proceso">
<tr onmouseover="this.style.backgroundColor='#ffff66';"
onmouseout="this.style.backgroundColor='#d4e3e5';">
<td><c:out value="${proceso.id}"/></td>
<td><c:out value="${proceso.nombre}"/></td>
<td><c:out value="${proceso.descripcion}"/></td>
...
<td></td>
</tr>
</c:forEach>
プロパティ「show_sql」を設定すると、上記のような奇妙なクエリが表示されます。
"select id2_1,uj8_,5sd_11 from SGDP-mysql123.tb_2_1.... tb0"
誰かが私を助けてくれたら、本当に感謝しています。
前もって感謝します。