我使用MySQL和使用JPA和冬眠JPA稱爲從2分貝
JEE應用存儲過程選擇數據I具有從表中DB1中刪除數據的存儲過程然後從DB2選擇從表中的數據和將它們插入從DB1表
CREATE PROCEDURE `update_data`(myId int(11))
BEGIN
DELETE FROM db1.tbl1
WHERE db1.tbl1.id = myId;
INSERT INTO
db1.tbl1
SELECT * FROM
db2.tbl1
WHERE db2.tbl1.id = myId;
END
當SQL調用它成功 從JPA調用當它返回例外
ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (default task-17) ResultSet is from UPDATE. No Data.
ERROR [stderr] (default task-17) org.hibernate.exception.GenericJDBCException: could not execute query
JAVA鱈魚E:
@PersistenceContext(name = "db2", unitName = "db2")
EntityManager em;
org.hibernate.Session session = (org.hibernate.Session) em.getDelegate();
Transaction tx = null;
tx = session.beginTransaction();
try {
Query query = session
.createSQLQuery("CALL update_teachers(:sesId)")
.addEntity(Teacher.class).setParameter("sesId", sesId);
query.list();
session.flush();
session.clear();
tx.commit();
} catch (HibernateException e) {
if (tx != null)
tx.rollback();
e.printStackTrace();
} finally {
session.close();
}
這個問題似乎有2個不同的數據庫中選擇其中EM無法處理此操作 我怎麼能執行此任務
注:我也嘗試過native named query 我試圖@NamedStoredProcedureQuery 所有人都付出了同樣的異常
當調用過程時,什麼是od'sesId'參數的值?你使用的是什麼MySQL版本?我發現了兩個報告的MySQL錯誤,如果您使用受影響的版本,可能會有所關聯:https://bugs.mysql.com/bug.php?id=15500和http://bugs.mysql.com/bug.php ?id = 25009 –