[Hibernate-JIRA] Created: (HHH-2160) JTATransactionFactory.isTransactionInProgress fails with WebSphereExtendedJTATransactionLookup
by Timothy Folks (JIRA)
JTATransactionFactory.isTransactionInProgress fails with WebSphereExtendedJTATransactionLookup
----------------------------------------------------------------------------------------------
Key: HHH-2160
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2160
Project: Hibernate3
Type: Bug
Components: core
Versions: 3.2.0.ga
Environment: Hibernate 3.2.0 ga
WebSphere Application Server 6.0.2.15
DB2 9.1
Reporter: Timothy Folks
Configurating Hibernate with the following settings:
hibernate.transaction.factory_class=org.hibernate.transaction.JTATransactionFactory
hibernate.transaction.manager_lookup_class=org.hibernate.transaction.WebSphereExtendedJTATransactionLookup
jta.UserTransaction=java:comp/UserTransaction
hibernate.current_session_context_class=jta
results in the following stack trace (irrelevant lines snipped)
<snipped>
Caused by: org.hibernate.TransactionException: could not register synchronization with JTA TransactionManager
at org.hibernate.jdbc.JDBCContext.registerSynchronizationIfPossible(JDBCContext.java:181)
at org.hibernate.jdbc.JDBCContext.<init>(JDBCContext.java:76)
at org.hibernate.impl.SessionImpl.<init>(SessionImpl.java:213)
at org.hibernate.impl.SessionFactoryImpl.openSession(SessionFactoryImpl.java:525)
at org.hibernate.context.JTASessionContext.buildOrObtainSession(JTASessionContext.java:114)
at org.hibernate.context.JTASessionContext.currentSession(JTASessionContext.java:80)
at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:542)
<snipped>
Caused by: java.lang.UnsupportedOperationException
at org.hibernate.transaction.WebSphereExtendedJTATransactionLookup$TransactionManagerAdapter.getStatus(WebSphereExtendedJTATransactionLookup.java:78)
at org.hibernate.transaction.JTATransactionFactory.isTransactionInProgress(JTATransactionFactory.java:94)
at org.hibernate.jdbc.JDBCContext.isTransactionInProgress(JDBCContext.java:187)
at org.hibernate.jdbc.JDBCContext.registerSynchronizationIfPossible(JDBCContext.java:159)
The workaround I've implemented is to change the following line in JTATransactionFactory.isTransactionInProgress:
if ( jdbcContext.getFactory().getTransactionManager() != null ) {
to:
if ( jdbcContext.getFactory().getTransactionManager() != null && jdbcContext.getFactory().getTransactionManager() instanceof WebSphereExtendedJTATransactionLookup.TransactionManagerAdapter == false) {
This results in the method falling back to looking up the UserTransaction in JNDI and calling getStatus on that.
--
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
18 years, 3 months
[Hibernate-JIRA] Created: (ANN-430) @ManyToOne results in default outer join eager fetch, should be lazy
by Christian Bauer (JIRA)
@ManyToOne results in default outer join eager fetch, should be lazy
--------------------------------------------------------------------
Key: ANN-430
URL: http://opensource.atlassian.com/projects/hibernate/browse/ANN-430
Project: Hibernate Annotations
Type: Bug
Components: documentation, binder
Reporter: Christian Bauer
Documentation says:
<sect3>
<title>Association fetching</title>
<para>You have the ability to either eagerly or lazily fetch
associated entities. The <literal>fetch</literal> parameter can be set
to <literal>FetchType.LAZY</literal> or
<literal>FetchType.EAGER</literal>. <literal>EAGER</literal> will try
to use an outer join select to retrieve the associated object, while
<literal>LAZY</literal> is the default and will only trigger a select
when the associated object is accessed for the first time. EJBQL also
has a <literal>fetch</literal> keyword that allows you to override
laziness when doing a particular query. This is very useful to improve
performance and is decided on a use case to use case basis.</para>
</sect3>
However, a simple @ManyToOne without any other attributes results in an eager join outer fetch.
--
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
18 years, 3 months
[Hibernate-JIRA] Created: (HHH-2235) Support for null map-keys in <map> mappings
by Igor Lobanov (JIRA)
Support for null map-keys in <map> mappings
-------------------------------------------
Key: HHH-2235
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2235
Project: Hibernate3
Type: Bug
Components: core
Versions: 3.2.0.ga
Reporter: Igor Lobanov
Priority: Minor
I'm not sure if I should file it as a bug.
Hibernate requires index column for <map> mappings to be not null. This is required by the code in AbstractCollectionPersister#readIndex(...), which raises exception if index column is null. However, when I override collection persister and force readIndex method to return null, everything seems to work fine. Hibernate allows me to work with maps using null value as a key. Though I havn't tested it extensivly yet.
What is the reason for disallowing null values as a keys? If there are possible complicated error conditions, then this issue is a feature request for null-values support for <map> mappings. If there are no errors possible, then constraining such behavior is probably wrong.
--
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
18 years, 4 months
[Hibernate-JIRA] Created: (HHH-2019) Provide a way to unset properties, and/or provide a 'none' option for hbm2ddl.auto
by Dave E Martin (JIRA)
Provide a way to unset properties, and/or provide a 'none' option for hbm2ddl.auto
----------------------------------------------------------------------------------
Key: HHH-2019
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2019
Project: Hibernate3
Type: Improvement
Environment: hibernate / annotations / hibernate.properties
Reporter: Dave E Martin
Priority: Minor
It may occasionally be desirable to programmatically get rid of or override a property value, this is generally allowed for by the .setProperty method, however:
Once hbm2ddl.auto is set to something, there is no way to unset it, or set it to a value which would be equivalent to its being unset (or its undocumented). There is no remove or unset, or deleteProperty, and also setting it to null does not work.
Due to issues such as HHH-2018, it may be necessary to programmatically 'get rid of' hbm2ddl.auto even if the end user (or some other mechanism) has specified a value for it in an external hibernate.properties file (or other method of setting hibernate properties).
--
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
18 years, 4 months