Hey Bryan,
Thanks for the tip. From the derby.log that got created I can see that the
following is logged:
2010-05-26 04:23:06.228 GMT Thread[http-8080-1,5,main] (XID = 313), (SESSIONID
= 4), (DATABASE = RegistryDB), (DRDAID = null), Committing
2010-05-26 04:23:06.229 GMT Thread[http-8080-1,5,main] (XID = 313), (SESSIONID
= 4), (DATABASE = RegistryDB), (DRDAID = null), Rolling back
2010-05-26 04:23:06.229 GMT Thread[http-8080-1,5,main] (XID = 314), (SESSIONID
= 5), (DATABASE = RegistryDB), (DRDAID = null), Committing
2010-05-26 04:23:06.229 GMT Thread[http-8080-1,5,main] (XID = 314), (SESSIONID
= 5), (DATABASE = RegistryDB), (DRDAID = null), Committing
2010-05-26 04:23:06.394 GMT Thread[http-8080-1,5,main] (XID = 315), (SESSIONID
= 5), (DATABASE = RegistryDB), (DRDAID = null), Begin compiling prepared
statement: select product0_.guid as guid1_, product0_.home as home1_,
product0_.description as descript3_1_, product0_.lid as lid1_, product0_.name
as name1_, product0_.objectType as objectType1_, product0_.status as status1_,
product0_.userVersion as userVers8_1_, product0_.version as version1_,
product0_.contentVersion as content10_1_, product0_.mimeType as mimeType1_ from
Product product0_ where product0_.lid=? and product0_.userVersion=? fetch first
2 rows only :End prepared statement
2010-05-26 04:23:06.412 GMT Thread[http-8080-1,5,main] (XID = 315), (SESSIONID
= 5), (DATABASE = RegistryDB), (DRDAID = null), End compiling prepared
statement: select product0_.guid as guid1_, product0_.home as home1_,
product0_.description as descript3_1_, product0_.lid as lid1_, product0_.name
as name1_, product0_.objectType as objectType1_, product0_.status as status1_,
product0_.userVersion as userVers8_1_, product0_.version as version1_,
product0_.contentVersion as content10_1_, product0_.mimeType as mimeType1_ from
Product product0_ where product0_.lid=? and product0_.userVersion=? fetch first
2 rows only :End prepared statement
2010-05-26 04:23:06.424 GMT Thread[http-8080-1,5,main] (XID = 315), (SESSIONID
= 5), (DATABASE = RegistryDB), (DRDAID = null), Rolling back
2010-05-26 04:23:06.424 GMT Thread[http-8080-1,5,main] (XID = 315), (SESSIONID
= 5), (DATABASE = RegistryDB), (DRDAID = null), Committing
2010-05-26 04:23:06.425 GMT Thread[http-8080-1,5,main] (XID = 315), (SESSIONID
= 5), (DATABASE = RegistryDB), (DRDAID = null), Rolling back
This is query generated from:
@Transactional(readOnly = true)
public Product getProduct(String lid, String userVersion) {
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Product> cq = cb.createQuery(Product.class);
Root<Product> productEntity = cq.from(Product.class);
Path<String> lidAttr = productEntity.get("lid");
Path<String> userVersionAttr = productEntity.get("userVersion");
cq.where(cb.and(cb.equal(lidAttr, lid), cb.equal(userVersionAttr,
userVersion)));
TypedQuery<Product> query = entityManager.createQuery(cq);
Product product = query.getSingleResult();
return product;
}
I used a NamedQuery before that generated essentially the same thing and ended
up with the same error. It should only be setting 2 parameters but it looks the
query is never executed but rather just throwing an exception before getting
executed. In addition, it seems as though its trying to build the query twice
even though there is only one call to the code. Any thoughts?
Thanks,
Paul
On May 25, 2010, at 7:31 PM, Bryan Pendleton wrote:
Now, to figure out what statement you are running, you can try running your
application with
-Dderby.language.logStatementText=true
Then after running your application you should have a file named 'derby.log'
with a detailed description of each SQL statement that is issued, and the
error message (if any) that accompanies it.
thanks,
bryan