[Hibernate-JIRA] Created: (HHH-2844) Limit and 'For Update' do not work on Oracle
by Michael Kopp (JIRA)
Limit and 'For Update' do not work on Oracle
--------------------------------------------
Key: HHH-2844
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2844
Project: Hibernate3
Issue Type: Bug
Components: query-sql
Affects Versions: 3.2.2
Reporter: Michael Kopp
Limits on oracle lead too:
select * from (select x.y as xy_1 from table x) where rownum <= 5
when doing a for update that leads too
select * from (select x.y as xy_1 from table x) where rownum <= 5 for update of x.y
The problem is that the x.y is invalid and not found within the temporary view and leads to an oracle error.
what would be valid is the name of the view column xy_1, meaning
select * from (select x.y as xy_1 from table x) where rownum <= 5 for update of xy_1
Actually this should be valid in all cases when doing a alias for update lock.
My Solution thus was to override the following in my own Oracle Dialect
public String applyLocksToSql(final String sql, final Map aliasedLockModes, final Map keyColumnNames)
{
final String s = new ForUpdateFragment(this, aliasedLockModes, keyColumnNames)
{
@Override
public ForUpdateFragment addTableAlias(final String alias)
{
// search for alias in sql
final int i = sql.indexOf(alias);
// check if the found string is followed by an ' as ' and thus has a column alias
if (i != -1 && sql.length() > (i + alias.length() + 4) && sql.substring(i + alias.length(), i + alias.length() + 4).equals(
" as "))
{
// use the column alias
return super.addTableAlias(sql.substring(i + alias.length() + 4, sql.indexOf(',',i + alias.length() + 4)));
}
return super.addTableAlias(alias);
}
}.toFragmentString();
return sql + s;
--
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
12 years
[Hibernate-JIRA] Created: (HBX-939) Composite IDs and many-to-many relationships
by Markus Kramer (JIRA)
Composite IDs and many-to-many relationships
--------------------------------------------
Key: HBX-939
URL: http://opensource.atlassian.com/projects/hibernate/browse/HBX-939
Project: Hibernate Tools
Issue Type: Bug
Affects Versions: 3.2beta9
Environment: Hibrnate 3.2.1, Postgresql 8.1.8
Reporter: Markus Kramer
Attachments: B.hbm.xml, testdb.sql
The detection of many-to-many relationships doesn't work correctly if the primary key of one of the involved tables consists of more than one field.
An example:
One of two tables (table 'A') of a many-to-many relationship has a primary key consisting of two attributes (id1 and id2).
The generated B.hbm.xml for the table 'B' contains this:
<set name="as" inverse="true" table="a_b">
<key>
<column name="b_id" not-null="true" />
</key>
<many-to-many entity-name="test.A">
<column name="a_id1" not-null="true" />
</many-to-many>
</set>
But there should be another entry for the referenced primary key:
<column name="a_id2" not-null="true" />
The SQL code for the used tables and the complete B.hbm.xml are attached.
--
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
12 years
[Hibernate-JIRA] Created: (HSEARCH-444) Search fails to start when core uses XML mappings making use of entity-name attribute
by Sanne Grinovero (JIRA)
Search fails to start when core uses XML mappings making use of entity-name attribute
-------------------------------------------------------------------------------------
Key: HSEARCH-444
URL: http://opensource.atlassian.com/projects/hibernate/browse/HSEARCH-444
Project: Hibernate Search
Issue Type: Bug
Components: mapping
Affects Versions: 3.1.0.GA
Reporter: Sanne Grinovero
Assignee: Emmanuel Bernard
Fix For: 3.2.0.Beta2
As described on forums: https://forum.hibernate.org/viewtopic.php?f=9&t=993687
classes mapped using XML on hibernate core, like
classes starting with:
<class name="com.mydomain.myapp.AnswerImpl" table="answer"
entity-name="Answer">
cause:
Caused by: java.lang.NullPointerException
at org.hibernate.search.cfg.SearchConfigurationFromHibernateCore.getClassMapping(SearchConfigurationFromHibernateCore.java:31)
at org.hibernate.search.store.DirectoryProviderFactory.getDirectoryProviderName(DirectoryProviderFactory.java:226)
at org.hibernate.search.store.DirectoryProviderFactory.createDirectoryProviders(DirectoryProviderFactory.java:53)
at org.hibernate.search.impl.SearchFactoryImpl.initDocumentBuilders(SearchFactoryImpl.java:404)
at org.hibernate.search.impl.SearchFactoryImpl.<init>(SearchFactoryImpl.java:119)
at org.hibernate.search.event.ContextHolder.getOrBuildSearchFactory(ContextHolder.java:30)
at org.hibernate.search.event.FullTextIndexEventListener.initialize(FullTextIndexEventListener.java:59)
at org.hibernate.event.EventListeners$1.processListener(EventListeners.java:198)
at org.hibernate.event.EventListeners.processListeners(EventListeners.java:181)
at org.hibernate.event.EventListeners.initializeListeners(EventListeners.java:194)
... 16 more
This was reported on 3.1.0.GA but I guess it affects all releases.
There's a "test WAR" in the forums, going to ask for a 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
12 years
[Hibernate-JIRA] Created: (HHH-3129) Null Role in PersitentCollection during a onCollectionRecreate() in an Interceptor
by Jose CHILLAN (JIRA)
Null Role in PersitentCollection during a onCollectionRecreate() in an Interceptor
----------------------------------------------------------------------------------
Key: HHH-3129
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-3129
Project: Hibernate3
Issue Type: Bug
Components: core
Affects Versions: 3.2.6
Environment: Any
Reporter: Jose CHILLAN
When the "onCollectionRecreate" is invoked on an Interceptor, the getRole() method returns null. After investigation,
the problem is located in the class CollectionEntry in one of its constructors and is easily solved using the patch :
public CollectionEntry(CollectionPersister persister, PersistentCollection collection)
{
// new collections that get found + wrapped
// during flush shouldn't be ignored
ignore = false;
collection.clearDirty(); //a newly wrapped collection is NOT dirty (or we get unnecessary version updates)
snapshot = persister.isMutable() ? collection.getSnapshot(persister) : null;
// -- ADDED LINE HERE --
role = persister.getRole();
collection.setSnapshot(loadedKey, role, snapshot);
}
Thanks
--
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
12 years
[Hibernate-JIRA] Created: (HHH-6580) Discriminator value used as ID when inserting entity to PosgtreSQL
by Paweł Stawicki (JIRA)
Discriminator value used as ID when inserting entity to PosgtreSQL
------------------------------------------------------------------
Key: HHH-6580
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-6580
Project: Hibernate Core
Issue Type: Bug
Components: core
Affects Versions: 3.6.6, 3.6.5, 3.6.4, 3.6.3, 3.6.2, 3.6.1, 3.6.0
Environment: Tested on Hibernate 3.6.0, but I looked in the code of 3.6.6 and 4.0.0 Beta4 and it looks like it isn't fixed.
PostgreSQL 8.4.8
Reporter: Paweł Stawicki
When we have inheritance strategy SINGLE_TABLE, and we use discriminator column, this column is the first one in table. Now we want to insert some entity inheriting from this one, and we want PostgreSQL to automatically generate the ID for the new entity. Discriminator column is the first in the table.
Hibernate runs IdentityGenerator.GetGeneratedKeysDelegate.executeAndExtract(), which gets ResultSet from PreparedStatement (in Hibernate 3.6.0 it's line 97 in IdentityGenerator).
This ResultSet, in case of PostgreSQL, contains whole inserted row, not only ID. This is the problem if ID is not the first column, because then Hibernate get's value from the first column and uses it as ID. It's in IdentifierGeneratorHelper.getGeneratedIdentity() and IdentifierGeneratorHelper.get().
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years