[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
11 years, 10 months
[Hibernate-JIRA] Created: (HHH-6982) ForeignKeys$Nullifier thinks a detached proxy is attached if another object with the same identifier is associated with the persistence context
by Martin Keßler (JIRA)
ForeignKeys$Nullifier thinks a detached proxy is attached if another object with the same identifier is associated with the persistence context
-----------------------------------------------------------------------------------------------------------------------------------------------
Key: HHH-6982
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-6982
Project: Hibernate ORM
Issue Type: Bug
Components: core
Affects Versions: 3.5.1
Environment: Hibernate 3.5.1, IBM DB2 9.7 on Win7 and AIX 6.1
Reporter: Martin Keßler
1. Create a transient object A which has a many-to-one property of type B
2. Create a proxy of type B with identifier x via Session.load(B.class, x)
3. Set the B-property in A to B
4. Flush and clear the persistence context; the B-proxy is now detached
5. Read the B-entity with identifier x through a query; a new object with id=x is now in the persistence context
6. Persist the A-entity (Session.save)
7. ForeignKeys$Nullifier.isNullifiable is called with the B-proxy, and checks if the persistence context contains an entity with the id x
8. The persistence context actually contains such an entity, but it's not the proxy
9. Hibernate tries to initialize the detached proxy, leading to a LazyInitializationException
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 10 months
[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
11 years, 10 months
[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
11 years, 10 months
[Hibernate-JIRA] Created: (HHH-6925) Unnecessary .toLowercase() in SQLServer2005 dialect
by Hasan Ceylan (JIRA)
Unnecessary .toLowercase() in SQLServer2005 dialect
---------------------------------------------------
Key: HHH-6925
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-6925
Project: Hibernate Core
Issue Type: Bug
Components: core
Affects Versions: 4.0.0.Final
Environment: SQL Server with Turkish CI
Reporter: Hasan Ceylan
Priority: Blocker
in getLimitString(String, boolean), the original query is transformed to lower case. with non Turkish locale on the AS Server, this is lowered by latin rules.
However, SQL Server as its locale is Turkish, cannot match TURKISH_TABLE / TURKISH_COLUMN with turkish_table / turkish_column raising "object / column not found" exception.
For detailed info on how 'I / i' handled in Turkish locale please refer to http://www.java2s.com/Tutorial/CSharp/0440__I18N-Internationalization/tur...
Very simple fix is to remove the toLowerCase() from getLimitString(String, boolean). If that serves a purpose then lowering should be made based on SQL Server locale of the current user, connection, database (I am not sure).
Regards,
Hasan Ceylan
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 10 months
[Hibernate-JIRA] Created: (HHH-6747) ClassCastException when rendering SimpleCaseExpression
by Anne Buit (JIRA)
ClassCastException when rendering SimpleCaseExpression
------------------------------------------------------
Key: HHH-6747
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-6747
Project: Hibernate Core
Issue Type: Bug
Components: query-criteria
Affects Versions: 3.6.7
Environment: SQL Server 2005
Reporter: Anne Buit
Priority: Minor
Attachments: SimpleCase.zip
When creating a SimpleCase using CriteriaBuilder.selectCase(Expression<?> arg0), a classcast exception will be thrown when the query is rendered to a TypedQuery.
CriteriaQuery<Customer> query = builder.createQuery(Customer.class);
Root<Customer> root = query.from(Customer.class);
query.select(root);
SimpleCase<String, Integer> orderCase = builder.selectCase(root.get(Customer_.EMail));
orderCase = orderCase.when("test(a)test.com", 1);
orderCase = orderCase.when("test2(a)test.com", 2);
query.orderBy(builder.asc(orderCase.otherwise(0)));
em.createQuery(query);
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to org.hibernate.ejb.criteria.Renderable
at org.hibernate.ejb.criteria.expression.SimpleCaseExpression.render(SimpleCaseExpression.java:146)
at org.hibernate.ejb.criteria.CriteriaQueryImpl.render(CriteriaQueryImpl.java:346)
at org.hibernate.ejb.criteria.CriteriaQueryCompiler.compile(CriteriaQueryCompiler.java:223)
at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:441)
See attachement for a reproduction project.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 10 months