Hibernate SVN: r20924 - in core/branches/Branch_3_2_4_SP1_CP: src/org/hibernate/engine/loading and 5 other directories.
by hibernate-commits@lists.jboss.org
Author: stliu
Date: 2011-04-05 23:56:19 -0400 (Tue, 05 Apr 2011)
New Revision: 20924
Added:
core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/hqlfetchscroll/
core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/hqlfetchscroll/Child.java
core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/hqlfetchscroll/HQLScrollFetchTest.java
core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/hqlfetchscroll/Parent.java
core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/hqlfetchscroll/ParentChild.hbm.xml
Modified:
core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/dialect/Cache71Dialect.java
core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/dialect/MimerSQLDialect.java
core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/engine/loading/CollectionLoadContext.java
core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/loader/Loader.java
core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/entitymode/dom4j/many2one/Car.java
core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/entitymode/dom4j/many2one/CarPart.java
core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/entitymode/dom4j/many2one/CarType.java
core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/entitymode/dom4j/many2one/Dom4jManyToOneTest.java
core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/legacy/CustomSQLTest.java
Log:
JBPAPP-5897 HHH-1283 ScrollableResults JoinFetch don't set child collection correctly
Modified: core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/dialect/Cache71Dialect.java
===================================================================
--- core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/dialect/Cache71Dialect.java 2011-03-12 13:57:35 UTC (rev 20923)
+++ core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/dialect/Cache71Dialect.java 2011-04-06 03:56:19 UTC (rev 20924)
@@ -32,9 +32,9 @@
import org.hibernate.util.StringHelper;
/**
- * Caché 2007.1 dialect. This class is required in order to use Hibernate with Intersystems Cach� SQL.<br>
+ * Caché 2007.1 dialect. This class is required in order to use Hibernate with Intersystems Caché SQL.<br>
* <br>
- * Compatible with Cach� 2007.1.
+ * Compatible with Caché 2007.1.
* <br>
* <head>
* <title>Caché and Hibernate</title>
@@ -189,8 +189,8 @@
public class Cache71Dialect extends Dialect {
/**
- * Creates new <code>Cach�71Dialect</code> instance. Sets up the JDBC /
- * Cach� type mappings.
+ * Creates new <code>Caché71Dialect</code> instance. Sets up the JDBC /
+ * Caché type mappings.
*/
public Cache71Dialect() {
super();
Modified: core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/dialect/MimerSQLDialect.java
===================================================================
--- core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/dialect/MimerSQLDialect.java 2011-03-12 13:57:35 UTC (rev 20923)
+++ core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/dialect/MimerSQLDialect.java 2011-04-06 03:56:19 UTC (rev 20924)
@@ -10,7 +10,7 @@
/**
* An Hibernate 3 SQL dialect for Mimer SQL. This dialect requires Mimer SQL 9.2.1 or later
* because of the mappings to NCLOB, BINARY, and BINARY VARYING.
- * @author Fredrik �lund <fredrik.alund(a)mimer.se>
+ * @author Fredrik lund <fredrik.alund(a)mimer.se>
*/
public class MimerSQLDialect extends Dialect {
Modified: core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/engine/loading/CollectionLoadContext.java
===================================================================
--- core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/engine/loading/CollectionLoadContext.java 2011-03-12 13:57:35 UTC (rev 20923)
+++ core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/engine/loading/CollectionLoadContext.java 2011-04-06 03:56:19 UTC (rev 20924)
@@ -40,7 +40,7 @@
private final LoadContexts loadContexts;
private final ResultSet resultSet;
- private Set localLoadingCollectionKeys = new HashSet();
+ private Set<CollectionKey> localLoadingCollectionKeys = new HashSet<CollectionKey>();
/**
* Creates a collection load context for the given result set.
@@ -150,7 +150,7 @@
*
* @param persister The persister for which to complete loading.
*/
- public void endLoadingCollections(CollectionPersister persister) {
+ public void endLoadingCollections(CollectionPersister persister, Object loadedEntity) {
SessionImplementor session = getLoadContext().getPersistenceContext().getSession();
if ( !loadContexts.hasLoadingCollectionEntries()
&& localLoadingCollectionKeys.isEmpty() ) {
@@ -163,25 +163,29 @@
// internal loadingCollections map for matches and store those matches
// in a temp collection. the temp collection is then used to "drive"
// the #endRead processing.
- List matches = null;
- Iterator iter = localLoadingCollectionKeys.iterator();
+ List<LoadingCollectionEntry> matches = null;
+ Iterator<CollectionKey> iter = localLoadingCollectionKeys.iterator();
while ( iter.hasNext() ) {
- final CollectionKey collectionKey = (CollectionKey) iter.next();
+ final CollectionKey collectionKey = iter.next();
final LoadingCollectionEntry lce = loadContexts.locateLoadingCollectionEntry( collectionKey );
if ( lce == null) {
log.warn( "In CollectionLoadContext#endLoadingCollections, localLoadingCollectionKeys contained [" + collectionKey + "], but no LoadingCollectionEntry was found in loadContexts" );
}
else if ( lce.getResultSet() == resultSet && lce.getPersister() == persister ) {
- if ( matches == null ) {
- matches = new ArrayList();
- }
- matches.add( lce );
+
if ( lce.getCollection().getOwner() == null ) {
session.getPersistenceContext().addUnownedCollection(
new CollectionKey( persister, lce.getKey(), session.getEntityMode() ),
lce.getCollection()
);
}
+ else if ( loadedEntity != null && lce.getCollection().getOwner() != loadedEntity ) {
+ continue;
+ }
+ if ( matches == null ) {
+ matches = new ArrayList<LoadingCollectionEntry>();
+ }
+ matches.add( lce );
if ( log.isTraceEnabled() ) {
log.trace( "removing collection load entry [" + lce + "]" );
}
@@ -204,7 +208,7 @@
}
}
- private void endLoadingCollections(CollectionPersister persister, List matchedCollectionEntries) {
+ private void endLoadingCollections(CollectionPersister persister, List<LoadingCollectionEntry> matchedCollectionEntries) {
if ( matchedCollectionEntries == null ) {
if ( log.isDebugEnabled() ) {
log.debug( "no collections were found in result set for role: " + persister.getRole() );
@@ -218,7 +222,7 @@
}
for ( int i = 0; i < count; i++ ) {
- LoadingCollectionEntry lce = ( LoadingCollectionEntry ) matchedCollectionEntries.get( i );
+ LoadingCollectionEntry lce = matchedCollectionEntries.get( i );
endLoadingCollection( lce, persister );
}
Modified: core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/loader/Loader.java
===================================================================
--- core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/loader/Loader.java 2011-03-12 13:57:35 UTC (rev 20923)
+++ core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/loader/Loader.java 2011-04-06 03:56:19 UTC (rev 20924)
@@ -289,7 +289,8 @@
hydratedObjects,
resultSet,
session,
- queryParameters.isReadOnly()
+ queryParameters.isReadOnly(),
+ result
);
session.getPersistenceContext().initializeNonLazyCollections();
return result;
@@ -340,7 +341,8 @@
hydratedObjects,
resultSet,
session,
- queryParameters.isReadOnly()
+ queryParameters.isReadOnly(),
+ result
);
session.getPersistenceContext().initializeNonLazyCollections();
return result;
@@ -811,13 +813,21 @@
return null;
}
}
-
private void initializeEntitiesAndCollections(
final List hydratedObjects,
final Object resultSetId,
final SessionImplementor session,
final boolean readOnly)
throws HibernateException {
+ initializeEntitiesAndCollections(hydratedObjects,resultSetId,session,readOnly, null);
+ }
+ private void initializeEntitiesAndCollections(
+ final List hydratedObjects,
+ final Object resultSetId,
+ final SessionImplementor session,
+ final boolean readOnly,
+ final Object loadedEntity)
+ throws HibernateException {
final CollectionPersister[] collectionPersisters = getCollectionPersisters();
if ( collectionPersisters != null ) {
@@ -828,7 +838,7 @@
//during loading
//TODO: or we could do this polymorphically, and have two
// different operations implemented differently for arrays
- endCollectionLoad( resultSetId, session, collectionPersisters[i] );
+ endCollectionLoad( resultSetId, session, collectionPersisters[i], loadedEntity );
}
}
}
@@ -862,7 +872,7 @@
//the entities, since we might call hashCode() on the elements
//TODO: or we could do this polymorphically, and have two
// different operations implemented differently for arrays
- endCollectionLoad( resultSetId, session, collectionPersisters[i] );
+ endCollectionLoad( resultSetId, session, collectionPersisters[i], loadedEntity );
}
}
}
@@ -872,12 +882,13 @@
private void endCollectionLoad(
final Object resultSetId,
final SessionImplementor session,
- final CollectionPersister collectionPersister) {
+ final CollectionPersister collectionPersister,
+ final Object loadedEntity) {
//this is a query and we are loading multiple instances of the same collection role
session.getPersistenceContext()
.getLoadContexts()
.getCollectionLoadContext( ( ResultSet ) resultSetId )
- .endLoadingCollections( collectionPersister );
+ .endLoadingCollections( collectionPersister, loadedEntity );
}
protected List getResultList(List results, ResultTransformer resultTransformer) throws QueryException {
Modified: core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/entitymode/dom4j/many2one/Car.java
===================================================================
--- core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/entitymode/dom4j/many2one/Car.java 2011-03-12 13:57:35 UTC (rev 20923)
+++ core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/entitymode/dom4j/many2one/Car.java 2011-04-06 03:56:19 UTC (rev 20924)
@@ -4,7 +4,7 @@
import java.util.Set;
/**
- * @author Paco Hern�ndez
+ * @author Paco Hernndez
*/
public class Car implements java.io.Serializable {
Modified: core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/entitymode/dom4j/many2one/CarPart.java
===================================================================
--- core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/entitymode/dom4j/many2one/CarPart.java 2011-03-12 13:57:35 UTC (rev 20923)
+++ core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/entitymode/dom4j/many2one/CarPart.java 2011-04-06 03:56:19 UTC (rev 20924)
@@ -1,7 +1,7 @@
package org.hibernate.test.entitymode.dom4j.many2one;
/**
- * @author Paco Hern�ndez
+ * @author Paco Hernndez
*/
public class CarPart implements java.io.Serializable {
Modified: core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/entitymode/dom4j/many2one/CarType.java
===================================================================
--- core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/entitymode/dom4j/many2one/CarType.java 2011-03-12 13:57:35 UTC (rev 20923)
+++ core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/entitymode/dom4j/many2one/CarType.java 2011-04-06 03:56:19 UTC (rev 20924)
@@ -1,7 +1,7 @@
package org.hibernate.test.entitymode.dom4j.many2one;
/**
- * @author Paco Hern�ndez
+ * @author Paco Hernndez
*/
public class CarType implements java.io.Serializable {
Modified: core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/entitymode/dom4j/many2one/Dom4jManyToOneTest.java
===================================================================
--- core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/entitymode/dom4j/many2one/Dom4jManyToOneTest.java 2011-03-12 13:57:35 UTC (rev 20923)
+++ core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/entitymode/dom4j/many2one/Dom4jManyToOneTest.java 2011-04-06 03:56:19 UTC (rev 20924)
@@ -14,7 +14,7 @@
import org.hibernate.junit.functional.FunctionalTestClassTestSuite;
/**
- * @author Paco Hern�ndez
+ * @author Paco Hernndez
*/
public class Dom4jManyToOneTest extends FunctionalTestCase {
Added: core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/hqlfetchscroll/Child.java
===================================================================
--- core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/hqlfetchscroll/Child.java (rev 0)
+++ core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/hqlfetchscroll/Child.java 2011-04-06 03:56:19 UTC (rev 20924)
@@ -0,0 +1,25 @@
+package org.hibernate.test.hqlfetchscroll;
+
+public class Child {
+
+ private String name;
+
+ Child() {
+ }
+
+ public Child(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ private void setName(String name) {
+ this.name = name;
+ }
+
+ public String toString() {
+ return name;
+ }
+}
\ No newline at end of file
Added: core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/hqlfetchscroll/HQLScrollFetchTest.java
===================================================================
--- core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/hqlfetchscroll/HQLScrollFetchTest.java (rev 0)
+++ core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/hqlfetchscroll/HQLScrollFetchTest.java 2011-04-06 03:56:19 UTC (rev 20924)
@@ -0,0 +1,196 @@
+package org.hibernate.test.hqlfetchscroll;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.hibernate.ScrollableResults;
+import org.hibernate.Session;
+import org.hibernate.Transaction;
+import org.hibernate.junit.functional.FunctionalTestCase;
+import org.hibernate.transform.DistinctRootEntityResultTransformer;
+
+
+public class HQLScrollFetchTest extends FunctionalTestCase {
+ private static final String QUERY = "select p from Parent p join fetch p.children c";
+
+ public HQLScrollFetchTest(String name) {
+ super( name );
+ }
+
+ public void testNoScroll() {
+ try {
+ insertTestData();
+ Session s = openSession();
+ List list = s.createQuery( QUERY ).setResultTransformer(new DistinctRootEntityResultTransformer() ).list();
+ assertResultFromAllUsers( list );
+ s.close();
+ }
+ finally {
+ deleteAll();
+ }
+ }
+
+ public void testScroll() {
+ try {
+ insertTestData();
+ Session s = openSession();
+ ScrollableResults results = s.createQuery( QUERY ).scroll();
+ List list = new ArrayList();
+ while ( results.next() ) {
+ list.add( results.get( 0 ) );
+ }
+ assertResultFromAllUsers( list );
+ s.close();
+ }
+ finally {
+ deleteAll();
+ }
+ }
+
+ public void testScrollOrderParentAsc() {
+ try {
+ insertTestData();
+ Session s = openSession();
+ ScrollableResults results = s.createQuery( QUERY + " order by p.name asc" ).scroll();
+ List list = new ArrayList();
+ while ( results.next() ) {
+ list.add( results.get( 0 ) );
+ }
+ assertResultFromAllUsers( list );
+ s.close();
+ }
+ finally {
+ deleteAll();
+ }
+ }
+
+ public void testScrollOrderParentDesc() {
+ try {
+ insertTestData();
+ Session s = openSession();
+ ScrollableResults results = s.createQuery( QUERY + " order by p.name desc" ).scroll();
+ List list = new ArrayList();
+ while ( results.next() ) {
+ list.add( results.get( 0 ) );
+ }
+ assertResultFromAllUsers( list );
+ s.close();
+ }
+ finally {
+ deleteAll();
+ }
+ }
+
+ public void testScrollOrderParentAscChildrenAsc() {
+ try {
+ insertTestData();
+ Session s = openSession();
+ ScrollableResults results = s.createQuery( QUERY + " order by p.name asc, c.name asc" ).scroll();
+ List list = new ArrayList();
+ while ( results.next() ) {
+ list.add( results.get( 0 ) );
+ }
+ assertResultFromAllUsers( list );
+ s.close();
+ }
+ finally {
+ deleteAll();
+ }
+ }
+
+ public void testScrollOrderParentAscChildrenDesc() {
+ try {
+ insertTestData();
+ Session s = openSession();
+ ScrollableResults results = s.createQuery( QUERY + " order by p.name asc, c.name desc" ).scroll();
+ List list = new ArrayList();
+ while ( results.next() ) {
+ list.add( results.get( 0 ) );
+ }
+ assertResultFromAllUsers( list );
+ s.close();
+ }
+ finally {
+ deleteAll();
+ }
+ }
+
+ private void assertResultFromAllUsers(List list) {
+ assertEquals( "list is not correct size: ", 2, list.size() );
+ for ( Iterator i = list.iterator(); i.hasNext(); ) {
+ Parent parent = (Parent) i.next();
+ assertEquals(
+ "parent " + parent + " has incorrect collection(" + parent.getChildren() + ").",
+ 3,
+ parent.getChildren().size()
+ );
+ }
+ }
+
+ private void deleteAll() {
+ Session s = openSession();
+ Transaction t = s.beginTransaction();
+ List list = s.createQuery( "from Parent" ).list();
+ for ( Iterator i = list.iterator(); i.hasNext(); ) {
+ s.delete( (Parent) i.next() );
+ }
+ t.commit();
+ s.close();
+ }
+ private void insertTestData() {
+ Session s = openSession();
+ Transaction t = s.beginTransaction();
+ Child child_1_1 = new Child( "achild1-1");
+ Child child_1_2 = new Child( "ychild1-2");
+ Child child_1_3 = new Child( "dchild1-3");
+ Child child_2_1 = new Child( "bchild2-1");
+ Child child_2_2 = new Child( "cchild2-2");
+ Child child_2_3 = new Child( "zchild2-3");
+
+ s.save( child_1_1 );
+ s.save( child_2_1 );
+ s.save( child_1_2 );
+ s.save( child_2_2 );
+ s.save( child_1_3 );
+ s.save( child_2_3 );
+
+ s.flush();
+
+ Parent p1 = new Parent( "parent1" );
+ p1.addChild( child_1_1 );
+ p1.addChild( child_1_2 );
+ p1.addChild( child_1_3 );
+ s.save( p1 );
+
+ Parent p2 = new Parent( "parent2" );
+ p2.addChild( child_2_1 );
+ p2.addChild( child_2_2 );
+ p2.addChild( child_2_3 );
+ s.save( p2 );
+
+ t.commit();
+ s.close();
+}
+
+// private void insertTestData() {
+// Session s = openSession();
+// Transaction t = s.beginTransaction();
+// s.save( makeParent( "parent1", "child1-1", "child1-2", "child1-3" ) );
+// s.save( makeParent( "parent2", "child2-1", "child2-2", "child2-3" ) );
+// t.commit();
+// s.close();
+// }
+
+ public String[] getMappings() {
+ return new String[] { "hqlfetchscroll/ParentChild.hbm.xml" };
+ }
+
+// protected Object makeParent(String name, String child1, String child2, String child3) {
+// Parent parent = new Parent( name );
+// parent.addChild( new Child( child1 ) );
+// parent.addChild( new Child( child2 ) );
+// parent.addChild( new Child( child3 ) );
+// return parent;
+// }
+}
Added: core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/hqlfetchscroll/Parent.java
===================================================================
--- core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/hqlfetchscroll/Parent.java (rev 0)
+++ core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/hqlfetchscroll/Parent.java 2011-04-06 03:56:19 UTC (rev 20924)
@@ -0,0 +1,41 @@
+package org.hibernate.test.hqlfetchscroll;
+
+import java.util.HashSet;
+import java.util.Set;
+
+public class Parent {
+ private String name;
+ private Set children = new HashSet();
+
+ Parent() {
+ }
+
+ public Parent(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+
+ void setName(String name) {
+ this.name = name;
+ }
+
+ public Set getChildren() {
+ return children;
+ }
+
+ private void setChildren(Set children) {
+ this.children = children;
+ }
+
+ public void addChild(Child child) {
+ children.add( child );
+ }
+
+ public String toString() {
+ return name;
+ }
+}
\ No newline at end of file
Added: core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/hqlfetchscroll/ParentChild.hbm.xml
===================================================================
--- core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/hqlfetchscroll/ParentChild.hbm.xml (rev 0)
+++ core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/hqlfetchscroll/ParentChild.hbm.xml 2011-04-06 03:56:19 UTC (rev 20924)
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+ "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+ "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping package="org.hibernate.test.hqlfetchscroll">
+
+ <class name="Parent" table="Parents">
+ <id name="name"/>
+
+ <set name="children" cascade="all-delete-orphan" lazy="false">
+ <key column="parent_id"/>
+ <one-to-many class="Child"/>
+ </set>
+
+ </class>
+
+ <class name="Child" table="chlidren">
+ <id name="name"/>
+ </class>
+
+
+</hibernate-mapping>
Modified: core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/legacy/CustomSQLTest.java
===================================================================
--- core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/legacy/CustomSQLTest.java 2011-03-12 13:57:35 UTC (rev 20923)
+++ core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/legacy/CustomSQLTest.java 2011-04-06 03:56:19 UTC (rev 20924)
@@ -163,7 +163,7 @@
p.setName("Max");
p.setLastName("Andersen");
- p.setNationalID("110974XYZ�");
+ p.setNationalID("110974XYZ");
p.setAddress("P. P. Street 8");
Session s = openSession();
@@ -191,11 +191,11 @@
s = openSession();
- list = s.find("select p from Person as p where p.address = 'L�rkev�nget 1'");
+ list = s.find("select p from Person as p where p.address = 'Lrkevnget 1'");
assertTrue(list.size() == 0);
- p.setAddress("L�rkev�nget 1");
+ p.setAddress("Lrkevnget 1");
s.update(p);
- list = s.find("select p from Person as p where p.address = 'L�rkev�nget 1'");
+ list = s.find("select p from Person as p where p.address = 'Lrkevnget 1'");
assertTrue(list.size() == 1);
list = s.find("select p from Party as p where p.address = 'P. P. Street 8'");
assertTrue(list.size() == 0);