[Hibernate-JIRA] Created: (HSEARCH-383) Hibernate Search does not respect the @AccessType annotation in respect to @Id fields.
by Steven Knock (JIRA)
Hibernate Search does not respect the @AccessType annotation in respect to @Id fields.
--------------------------------------------------------------------------------------
Key: HSEARCH-383
URL: http://opensource.atlassian.com/projects/hibernate/browse/HSEARCH-383
Project: Hibernate Search
Issue Type: Bug
Components: engine
Affects Versions: 3.1.1.GA, 3.1.0.GA
Environment: Hibernate 3.3.1.GA
Reporter: Steven Knock
Priority: Minor
Attachments: TestAccessTypeProblem.java
This occurs when indexing an Entity annotated as @IndexedEmbedded if the object that it is @ContainedIn is a proxy object that has not yet been loaded and if the @AccessType of the @Id of the proxy object has been overriden from field to property.
This is because Hibernate Search does not respect the @AccessType annotation, and so attempts to read the id of the parent object directly from the member variable, which is not initialised in the proxy and so returns 0 in the attached test case.
The problem is in:
org.hibernate.search.engine.DocumentBuilderIndexedEntity.checkDocumentId().
This results in a record in the Lucene index that has no reference to the containing instance. So, while the number of results is returned correctly, any attempt to actually retrieve the results and convert them into Hibernate objects fails.
--
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, 11 months
[Hibernate-JIRA] Created: (HSEARCH-402) Provide a ReaderProvider to cap the number of index reopenings to a fixed rate
by Sanne Grinovero (JIRA)
Provide a ReaderProvider to cap the number of index reopenings to a fixed rate
------------------------------------------------------------------------------
Key: HSEARCH-402
URL: http://opensource.atlassian.com/projects/hibernate/browse/HSEARCH-402
Project: Hibernate Search
Issue Type: New Feature
Reporter: Sanne Grinovero
Assignee: Sanne Grinovero
Fix For: 3.2.0
It's often unneeded to recheck for an index update at very high frequency, which ends up to be a bottleneck in high-throughput applications
for an unneded guarantee of having latest version of index.
Setting a configurable period, let's say 5 seconds, will make this ReaderProvider reopen an IndexReader once each 5 seconds.
This can be done in background, removing the delay of checks from the call to openReader(); and enabling index warmup in future (Lucene 2.9 feature) in background.
When reopening in background the ratio will be fixed, i.e. the index will be reopened even if there's no request for a new IR.
This impl should manage the timer, but otherwise delegate to another implementation of ReaderProvider (defaulting to current default: SharingBufferReaderProvider) to optionally chain and provide the benefits of the other implementation.
--
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, 11 months
[Hibernate-JIRA] Created: (HSEARCH-1121) Work on a proper classloader strategy
by Emmanuel Bernard (JIRA)
Work on a proper classloader strategy
-------------------------------------
Key: HSEARCH-1121
URL: https://hibernate.onjira.com/browse/HSEARCH-1121
Project: Hibernate Search
Issue Type: Improvement
Reporter: Emmanuel Bernard
Today we mostly expect the TCCL to be correct plus a minor ad-hoc fixes to make CapeDwarf and Modeshape work but it would be better to offer a clean way to define the classloaders.
introduce various classes of classloaders:
- Hibernate Search module classloader
- Application classloader
Or maybe it should rather be:
- entity classloader
- analyzer classloader
- interceptor classloader
- ...
Each classloader could then be provided by implementing a ClassloaderService class? It's unclear to me how things are bootstrapped in a modular environment and how such info is propagated or what best practices are.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 11 months
[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, 11 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, 11 months