[Hibernate-JIRA] Created: (HHH-5407) AbstractFlushingEvent prints stack trace at ERROR priority
by Tony Jacobs (JIRA)
AbstractFlushingEvent prints stack trace at ERROR priority
----------------------------------------------------------
Key: HHH-5407
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-5407
Project: Hibernate Core
Issue Type: Improvement
Affects Versions: 3.5.4
Environment: MySQL 5.0.77, Hibernate 3.5.3, Java 1.6.x, Spring, ...
Reporter: Tony Jacobs
Priority: Minor
I think my application logic correctly deals with the thrown exception, so I'd like to suppress the stack trace, but I don't want to turn off the ERROR level in a toolkit-level library such as Hibernate. A compromise that we use all of the time at my company is to print a one-liner error message with a hint on how to get the full stack trace for future offenses.
We're running hibernate 3.5.3, but this diff is against an older baseline. The same issue does still appear in hibernate-core trunk (line 324 in the trunk):
{noformat}
.../hibernate-3.2.3.ga/src/org/hibernate/event/def>diff -u AbstractFlushingEventListener.java.orig AbstractFlushingEventListener.java
--- AbstractFlushingEventListener.java.orig 2008-07-04 13:57:05.406250000 -0400
+++ AbstractFlushingEventListener.java 2010-07-23 11:04:50.375000000 -0400
@@ -298,7 +298,8 @@
session.getActionQueue().executeActions();
}
catch (HibernateException he) {
- log.error("Could not synchronize database state with session", he);
+ log.error("Could not synchronize database state with session (full trace at INFO priority): " + he);
+ log.info( "Full stack trace:", he );
throw he;
}
finally {
{noformat}
--
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
14 years, 5 months
[Hibernate-JIRA] Created: (HHH-5398) PersistentMap.keySet seems to produce a set containing values rather than keys.
by rufus hamade (JIRA)
PersistentMap.keySet seems to produce a set containing values rather than keys.
-------------------------------------------------------------------------------
Key: HHH-5398
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-5398
Project: Hibernate Core
Issue Type: Bug
Components: core
Affects Versions: 3.3.0.SP1
Environment: Also Hibernate EntityManager 3.4.0 if that is relevant.
Reporter: rufus hamade
I have a persistent Map defined as follows:
@Entity
public class Task {
[snip]
@OneToMany(mappedBy="task")
@MapKey(name="actor")
private Map<Long, TaskCC> ccs = new HashMap<Long, TaskCC>();
}
where
@Entity
public class TaskCC {
@Id
@GeneratedValue
private Long id;
@ManyToOne(fetch=FetchType.LAZY)
private Task task;
@ManyToOne(fetch=FetchType.LAZY)
@AccessType("field")
private Actor actor;
}
and actor is an independent entity (i.e., no associations to Task or TaskCC) with a Long id field.
We have some code that does something like:
ids = new HashSet<Long>(bug.getCcs().keySet());
But the ids set seems to contain the Actors rather than the Actor IDs.
Let me know if the above is not sufficient and/or you want me to create a simplified test case for this.
--
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
14 years, 5 months
[Hibernate-JIRA] Created: (HHH-5097) Bug in ParameterizedFunctionExpression with two or more parameters: IllegalArgumentException
by Max Hartmann (JIRA)
Bug in ParameterizedFunctionExpression with two or more parameters: IllegalArgumentException
--------------------------------------------------------------------------------------------
Key: HHH-5097
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-5097
Project: Hibernate Core
Issue Type: Bug
Components: entity-manager
Affects Versions: 3.5.0-Final
Environment: oracle 10g, hibernate 3.5
Reporter: Max Hartmann
If you call CriteriaBuilder.function() respectively "ParameterizedFunctionExpression" with two or more arguments you get an IllegalArgumentException.
I think the bug is here:
protected void renderArguments(StringBuilder buffer, CriteriaQueryCompiler.RenderingContext renderingContext) {
for ( Expression argument : argumentExpressions ) {
buffer.append( ( (Renderable) argument ).render( renderingContext ) );
}
}
The arguments are not seperated by comma.
Exception:
Exception in thread "main" java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: unexpected token: : near line 1, column 37 [select TO_CHAR(generatedAlias0.date1:param0) from test.server.TestBean as generatedAlias0]
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1166)
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1112)
at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:315)
at org.hibernate.ejb.criteria.CriteriaQueryCompiler.compile(CriteriaQueryCompiler.java:154)
at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:432)
at test.server.TestApp.main(TestApp.java:28)
Caused by: org.hibernate.hql.ast.QuerySyntaxException: unexpected token: : near line 1, column 37 [select TO_CHAR(generatedAlias0.date1:param0) from test.server.TestBean as generatedAlias0]
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:54)
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:47)
at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:82)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:284)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:182)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:98)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1760)
at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:297)
... 3 more
Code:
EntityManagerFactory factory = Persistence.createEntityManagerFactory("userDatabase");
EntityManager em = factory.createEntityManager();
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<String> createQuery = cb.createQuery(String.class);
Root<TestBean> from = createQuery.from(TestBean.class);
Expression<String> param = cb.literal("DD.MM.YYYY");
createQuery.select(cb.function("TO_CHAR", String.class,
from.get(TestBean_.date1), param));
List<String> resultList = em.createQuery(createQuery).getResultList();
--
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
14 years, 5 months
[Hibernate-JIRA] Created: (HHH-3908) Expose way to fully control fetching in native-sql queries in API
by Steve Ebersole (JIRA)
Expose way to fully control fetching in native-sql queries in API
-----------------------------------------------------------------
Key: HHH-3908
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-3908
Project: Hibernate Core
Issue Type: New Feature
Components: core
Reporter: Steve Ebersole
Fix For: 3.5
Currently, in order to fully control fetching in native-sql queries, users must revert to using a named sql query (at least the xml, not sure if the annotations variety supports as well). We alreasy have all the objects/contracts in place to handle this for the named queries, just need to clean-up and properly document them.
The current API calls to deal with this are the overloaded SQLQuery#addJoin methods. Ideally I'd see these changed to return the representation of the join-fetch to be configured; but addJoin already defines a return : the query itself :( So probably we will need new methods like addFetch:
1) public JoinFetch addFetch(String alias, String ownerAlias, String ownerProperty)
2) public JoinFetch addFetch(String alias, String ownerAlias, String ownerProperty, LockMode lockMode)
interface JoinFetch {
public void addPropertyMapping(String propertyName, String sqlAlias);
}
This can be expanded to the "root returns" as well (currently the overloaded #addEntity methods):
public RootReturn addRoot(String alias, Class entityClass)
etc...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Example
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SQLQuery query = session.createSQLQuery(
"select c.cust_id as cid, " +
" c.cust_name as cname, " +
" o.order_id as oid, " +
" o.order_num as onum " +
" from customer c " +
" inner join orders o " +
" on c.cust_id = o.cust_id"
);
query.addRoot( "c", Customer.class )
.addPropertyMapping( "id", "cid" )
.addPropertyMapping( "name", "cname" );
query.addFetch( "o", "c", "orders" )
.addPropertyMapping( "id", "oid" )
.addPropertyMapping( "orderNumber", "onum" );
...
--
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
14 years, 5 months