[Hibernate-JIRA] Created: (HHH-2460) Multiple object creates on HQL select causes "unexpected token: ,"
by Steve Mayhew (JIRA)
Multiple object creates on HQL select causes "unexpected token: ,"
------------------------------------------------------------------
Key: HHH-2460
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2460
Project: Hibernate3
Type: Bug
Components: query-hql
Versions: 3.1.2
Environment: MySQL
Reporter: Steve Mayhew
When executing this query:
select new java.lang.String('test1'), new java.lang.String('test2')
from SomeMappedClass
You get a syntax error. It does not matter what is in the from clause, result is always the same.
[2007-03-01 16:51:29,349] [ERROR:org.hibernate.hql.PARSER] [] - line 1:37: unexpected token: ,
[2007-03-01 16:51:29,365] [DEBUG:org.hibernate.hql.ast.AST] [] - --- HQL AST ---
\-[QUERY] 'query'
org.hibernate.hql.ast.QuerySyntaxException: unexpected token: , near line 1, column 37 [select new java.lang.String('test1'), new java.lang.String('test2')
from SomeMappedClass
at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:59)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:244)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:155)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:109)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:75)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:54)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:134)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:113)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1602)
at net.jvnet.dev.hqe.ThreadHQLQueryExecution.run(Unknown Source)
Caused by: line 1:37: unexpected token: ,
at org.hibernate.hql.antlr.HqlBaseParser.selectFrom(HqlBaseParser.java:1145)
at org.hibernate.hql.antlr.HqlBaseParser.queryRule(HqlBaseParser.java:702)
at org.hibernate.hql.antlr.HqlBaseParser.selectStatement(HqlBaseParser.java:296)
at org.hibernate.hql.antlr.HqlBaseParser.statement(HqlBaseParser.java:159)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:238)
... 9 more
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
15 years, 1 month
[Hibernate-JIRA] Created: (HHH-5590) Don't log and rethrow exceptions in AbstractFlushingEventListener
by Gregg (JIRA)
Don't log and rethrow exceptions in AbstractFlushingEventListener
-----------------------------------------------------------------
Key: HHH-5590
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-5590
Project: Hibernate Core
Issue Type: Bug
Components: core
Affects Versions: 3.6.0.CR1, 3.5.6, 3.3.2
Environment: Hibernate 3.3.2.GA
Oracle Database 10.1.0.4.0
JDK 1.6.0_17
Reporter: Gregg
Priority: Trivial
Attachments: AbstractFlushingEventListener.patch
For a similar issue covering logging-and-rethrowing overall, see http://opensource.atlassian.com/projects/hibernate/browse/HB-1308. This issue covers a specific instance in order to minimize the impact on the codebase. However, I would be all for elimination of every instance of log-and-rethrow in the codebase.
In this particular instance, I have a table A with a foreign key referencing records in table B. In my user interface, I give the user the ability to delete records from table B. If the user attempts to delete a record from table B that is referred to in table A, the database throws an integrity constraint violation. This exception is caught in AbstractFlushingEventListener.performExecutions, logged, and rethrown. My code sees the exception and informs the user that the record cannot be deleted because it's already in use in the system. So the exception ends up showing up in my logs (from the log.error() statement in AbstractFlushingEventListener.performExecutions) even though I'm handling it properly. I would like the log.error() statement removed since the code propagates the exception. Attached is a patchfile.
I'm not including a test case because I feel the issue is so simplistic that one isn't necessary.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 1 month
[Hibernate-JIRA] Created: (HHH-3494) HQLQueryPlan gives back zero result for "getSingleResult()" although one result is available
by Christian Hofschroer (JIRA)
HQLQueryPlan gives back zero result for "getSingleResult()" although one result is available
--------------------------------------------------------------------------------------------
Key: HHH-3494
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-3494
Project: Hibernate Core
Issue Type: Bug
Components: query-hql
Affects Versions: 3.3.1
Environment: 3.3.1.GA, hsqldb 1.8.0.7
Reporter: Christian Hofschroer
Attachments: patch.txt
I have run the following code snippets both and only the second one works, because there is a bug in HQLQueryPlan.
// This does not work correctly (query is javax.persistence.Query)
ExampleObject e = (ExampleObject) query.getSingleResult();
// Replacement with this code works
List l=query.getResultList() ;
assertEquals(1,l.size()) ;
ExampleObject e=(ExampleObject)l.get(0) ;
This problem occurs only in seldom cases when
1. Hibernate executes several sql queries and merges the result
and
2. There is a limit of results (the limit is "2" in version 3.3.1.GA, because only one result is expected anyway)
Attached is a patch for the class HQLQueryPlan. The line
if ( distinction.add( result ) ) {
has to be replaced with
if ( ! distinction.add( result ) ) {
In case the object was found it returns "true". With the current implementation the object is not added to "combinedResults" although it should be added.
It was not possible to reproduce the problem with the setup from "testsuite". If necessary I can provide a JUnit testcase.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 1 month
[Hibernate-JIRA] Created: (HV-360) DefaultTraversableResolver.isReachable() should be enhanced to return true for validations with group other than Default
by Georges-Etienne Legendre (JIRA)
DefaultTraversableResolver.isReachable() should be enhanced to return true for validations with group other than Default
------------------------------------------------------------------------------------------------------------------------
Key: HV-360
URL: http://opensource.atlassian.com/projects/hibernate/browse/HV-360
Project: Hibernate Validator
Issue Type: Improvement
Affects Versions: 4.1.0.Final
Reporter: Georges-Etienne Legendre
Assignee: Hardy Ferentschik
We use Bean Validator to validate transition between domain object states. We use groups to allow different validations for each state. When we want to change the state of an object, we get the object from the database (using JPA). However, because we use LAZY loading, only the loaded beans get validated. This causes problems because nothing is in fact validated (other than the first bean of course).
I know the JSR tells that the default TraversableResolver should verify if JPA is in the classpath. However, this doesn't make sense when groups are used for the purpose described above. There are 2 workarounds:
* Disable LAZY loading!
* Implement a TraversableResolver that returns true for isReachable()
However, I'm wondering if the DefaultTraversableResolver.isReachable() can be enhanced to return true for validations with group other than Default.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 1 month