我已經部署了與DB設置一個JBoss(5.2)服務器爲Oracle DB一個Grails(2.2.4)應用:的SQLException Grails中保存()方法
datasource {
dbCreate = 'update'
jndiName = 'java:XXX
}
我也有兩個域對象:
class A {
def name
static hasOne = [b:B]
static constraints = {
b unique: true
name unique: true
}
}
class B {
A a
static belongsTo = [A]
}
最後查找/創建一個實例的服務:
A createA(String name) {
def a = A.findByName(name)
if(!a) {
a = new A(name: name)
a.b = new B(a: a)
a.save() <-- This causes the ERROR. Tried a.save(flush:true), a.save(failOnError:true) and a.save(flush:true, failOnError:true)
}
return a
}
當使用Hibernate的自己H2 DB和測試當地既Grails的運行程序和Grails的運行戰爭這項工作很好,但與Oracle數據庫集成和部署到JBoss服務器後,我收到以下錯誤:
Hibernate operation: could not execute query; uncategorized SQLException for SQL [
select this_.id as id1_0_, this_.version as version1_0_, this_.name as name1_0_
from a this_
where this_.id=?];
SQL state [99999]; error code [17041];
Missing IN or OUT parameter at index:: 1;
nested exception is java.sql.SQLException: Missing IN or OUT parameter at index:: 1
任何人有一個想法這裏發生了什麼問題?
該錯誤通常是因爲沒有提供'?'的值。我不知道爲什麼它會出現在其他數據庫中,而不是在部署數據庫時出現,但這就是我將開始研究的內容。 – Gregg
我想,但因爲這個錯誤是由某個方法調用** save()**方法跟蹤造成的,我不知道如何開始調試它? –
您可以記錄綁定值。閱讀這篇文章,看看它是否有幫助:http://margotskapacs.com/2013/01/log-and-debug-gorm/ – Gregg