File path: /hibernate-distribution-3.3.2.GA/project/testsuite/src/test/java/org/hibernate/test/subselectfetch/SubselectFetchTest.java | File path: /hibernate-distribution-3.3.2.GA/project/testsuite/src/test/java/org/hibernate/test/subselectfetch/SubselectFetchTest.java | |||
Method name: void testSubselectFetchPosParam()
|
Method name: void testSubselectFetchCriteria()
|
|||
Number of AST nodes: 39 | Number of AST nodes: 39 | |||
1 | Session s = openSession();↵ | 1 | Session s = openSession();↵ | |
2 | Transaction t = s.beginTransaction();↵ | 2 | Transaction t = s.beginTransaction();↵ | |
3 | Parent p = new Parent("foo");↵ | 3 | Parent p = new Parent("foo");↵ | |
4 | p.getChildren().add( new Child("foo1") );↵ | 4 | p.getChildren().add( new Child("foo1") );↵ | |
5 | p.getChildren().add( new Child("foo2") );↵ | 5 | p.getChildren().add( new Child("foo2") );↵ | |
6 | Parent q = new Parent("bar");↵ | 6 | Parent q = new Parent("bar");↵ | |
7 | q.getChildren().add( new Child("bar1") );↵ | 7 | q.getChildren().add( new Child("bar1") );↵ | |
8 | q.getChildren().add( new Child("bar2") );↵ | 8 | q.getChildren().add( new Child("bar2") );↵ | |
9 | q.getMoreChildren().addAll( p.getChildren() );↵ | 9 | q.getMoreChildren().addAll( p.getChildren() );↵ | |
10 | s.persist(p); ↵ | 10 | s.persist(p); ↵ | |
11 | s.persist(q);↵ | 11 | s.persist(q);↵ | |
12 | t.commit();↵ | 12 | t.commit();↵ | |
13 | s.close();↵ | 13 | s.close();↵ | |
14 | ↵ | 14 | ↵ | |
15 | s = openSession();↵ | 15 | s = openSession();↵ | |
16 | t = s.beginTransaction();↵ | 16 | t = s.beginTransaction();↵ | |
17 | ↵ | 17 | ↵ | |
18 | getSessions().getStatistics().clear();↵ | 18 | getSessions().getStatistics().clear();↵ | |
19 | ↵ | 19 | ↵ | |
20 | List parents = s.createQuery("from Parent where name between ? and ? order by name desc")↵ | 20 | List parents = s.create↵ | |
21 | .setParameter(0, "bar")↵ | |||
22 | .setParameter(1, "foo"↵ | 21 | Criteria(Parent.class)↵ | |
22 | .add( Property.forName("name").between("bar", "foo") )↵ | |||
23 | )↵ | 23 | .addOrder( Order.desc("name") )↵ | |
24 | .list();↵ | 24 | .list();↵ | |
25 | p = (Parent) parents.get(0);↵ | 25 | p = (Parent) parents.get(0);↵ | |
26 | q = (Parent) parents.get(1);↵ | 26 | q = (Parent) parents.get(1);↵ | |
27 | assertFalse( Hibernate.isInitialized( p.getChildren() ) );↵ | 27 | assertFalse( Hibernate.isInitialized( p.getChildren() ) );↵ | |
28 | assertFalse( Hibernate.isInitialized( q.getChildren() ) );↵ | 28 | assertFalse( Hibernate.isInitialized( q.getChildren() ) );↵ | |
29 | assertEquals( p.getChildren().size(), 2 );↵ | 29 | assertEquals( p.getChildren().size(), 2 );↵ | |
30 | ↵ | 30 | ↵ | |
31 | assertTrue( Hibernate.isInitialized( p.getChildren().iterator().next() ) );↵ | 31 | assertTrue( Hibernate.isInitialized( p.getChildren().iterator().next() ) );↵ | |
32 | ↵ | 32 | ↵ | |
33 | assertTrue( Hibernate.isInitialized( q.getChildren() ) );↵ | 33 | assertTrue( Hibernate.isInitialized( q.getChildren() ) );↵ | |
34 | ↵ | 34 | ↵ | |
35 | assertEquals( q.getChildren().size(), 2 );↵ | 35 | assertEquals( q.getChildren().size(), 2 );↵ | |
36 | ↵ | 36 | ↵ | |
37 | assertTrue( Hibernate.isInitialized( q.getChildren().iterator().next() ) );↵ | 37 | assertTrue( Hibernate.isInitialized( q.getChildren().iterator().next() ) );↵ | |
38 | ↵ | 38 | ↵ | |
39 | assertFalse( Hibernate.isInitialized( p.getMoreChildren() ) );↵ | 39 | assertFalse( Hibernate.isInitialized( p.getMoreChildren() ) );↵ | |
40 | assertFalse( Hibernate.isInitialized( q.getMoreChildren() ) );↵ | 40 | assertFalse( Hibernate.isInitialized( q.getMoreChildren() ) );↵ | |
41 | assertEquals( p.getMoreChildren().size(), 0 );↵ | 41 | assertEquals( p.getMoreChildren().size(), 0 );↵ | |
42 | ↵ | 42 | ↵ | |
43 | assertTrue( Hibernate.isInitialized( q.getMoreChildren() ) );↵ | 43 | assertTrue( Hibernate.isInitialized( q.getMoreChildren() ) );↵ | |
44 | ↵ | 44 | ↵ | |
45 | assertEquals( q.getMoreChildren().size(), 2 );↵ | 45 | assertEquals( q.getMoreChildren().size(), 2 );↵ | |
46 | ↵ | 46 | ↵ | |
47 | assertTrue( Hibernate.isInitialized( q.getMoreChildren().iterator().next() ) );↵ | 47 | assertTrue( Hibernate.isInitialized( q.getMoreChildren().iterator().next() ) );↵ | |
48 | ↵ | 48 | ↵ | |
49 | assertEquals( 3, getSessions().getStatistics().getPrepareStatementCount() );↵ | 49 | assertEquals( 3, getSessions().getStatistics().getPrepareStatementCount() );↵ | |
50 | Child c = (Child) p.getChildren().get(0);↵ | 50 | Child c = (Child) p.getChildren().get(0);↵ | |
51 | c.getFriends().size();↵ | 51 | c.getFriends().size();↵ | |
52 | s.delete(p);↵ | 52 | s.delete(p);↵ | |
53 | s.delete(q); ↵ | 53 | s.delete(q); ↵ | |
54 | t.commit();↵ | 54 | t.commit();↵ | |
55 | s.close(); | 55 |
| |
See real code fragment | See real code fragment |
Number of common nesting structure subtrees | 1 |
Number of refactorable cases | 0 |
Number of non-refactorable cases | 1 |
Time elapsed for finding largest common nesting structure subtrees (ms) | 0.0 |
Clones location | Clones are declared in the same class |
Number of node comparisons | 1046 |
Number of mapped statements | 38 |
Number of unmapped statements in the first code fragment | 1 |
Number of unmapped statements in the second code fragment | 1 |
Time elapsed for statement mapping (ms) | 0.0 |
Clone type | Type 2 |
ID | Statement | ID | Statement | ||||
---|---|---|---|---|---|---|---|
1 | Session s = openSession(); | 1 | Session s = openSession(); | ||||
2 | Transaction t = s.beginTransaction(); | 2 | Transaction t = s.beginTransaction(); | ||||
3 | Parent p = new Parent("foo"); | 3 | Parent p = new Parent("foo"); | ||||
4 | p.getChildren().add(new Child("foo1")); | 4 | p.getChildren().add(new Child("foo1")); | ||||
5 | p.getChildren().add(new Child("foo2")); | 5 | p.getChildren().add(new Child("foo2")); | ||||
6 | Parent q = new Parent("bar"); | 6 | Parent q = new Parent("bar"); | ||||
7 | q.getChildren().add(new Child("bar1")); | 7 | q.getChildren().add(new Child("bar1")); | ||||
8 | q.getChildren().add(new Child("bar2")); | 8 | q.getChildren().add(new Child("bar2")); | ||||
9 | q.getMoreChildren().addAll(p.getChildren()); | 9 | q.getMoreChildren().addAll(p.getChildren()); | ||||
10 | s.persist(p); | 10 | s.persist(p); | ||||
11 | s.persist(q); | 11 | s.persist(q); | ||||
12 | t.commit(); | 12 | t.commit(); | ||||
13 | s.close(); | 13 | s.close(); | ||||
14 | s = openSession(); | 14 | s = openSession(); | ||||
15 | t = s.beginTransaction(); | 15 | t = s.beginTransaction(); | ||||
16 | getSessions().getStatistics().clear(); | 16 | getSessions().getStatistics().clear(); | ||||
|
| 17 | List parents = s.createCriteria(Parent.class).add(Property.forName("name").between("bar", "foo")).addOrder(Order.desc("name")).list(); | ||||
17 | List parents = s.createQuery("from Parent where name between ? and ? order by name desc").setParameter(0, "bar").setParameter(1, "foo").list(); |
| | ||||
18 | p = (Parent)parents.get(0); | 18 | p = (Parent)parents.get(0); | ||||
19 | q = (Parent)parents.get(1); | 19 | q = (Parent)parents.get(1); | ||||
20 | assertFalse(Hibernate.isInitialized(p.getChildren())); | 20 | assertFalse(Hibernate.isInitialized(p.getChildren())); | ||||
21 | assertFalse(Hibernate.isInitialized(q.getChildren())); | 21 | assertFalse(Hibernate.isInitialized(q.getChildren())); | ||||
22 | assertEquals(p.getChildren().size(), 2); | 22 | assertEquals(p.getChildren().size(), 2); | ||||
23 | assertTrue(Hibernate.isInitialized(p.getChildren().iterator().next())); | 23 | assertTrue(Hibernate.isInitialized(p.getChildren().iterator().next())); | ||||
24 | assertTrue(Hibernate.isInitialized(q.getChildren())); | 24 | assertTrue(Hibernate.isInitialized(q.getChildren())); | ||||
25 | assertEquals(q.getChildren().size(), 2); | 25 | assertEquals(q.getChildren().size(), 2); | ||||
26 | assertTrue(Hibernate.isInitialized(q.getChildren().iterator().next())); | 26 | assertTrue(Hibernate.isInitialized(q.getChildren().iterator().next())); | ||||
27 | assertFalse(Hibernate.isInitialized(p.getMoreChildren())); | 27 | assertFalse(Hibernate.isInitialized(p.getMoreChildren())); | ||||
28 | assertFalse(Hibernate.isInitialized(q.getMoreChildren())); | 28 | assertFalse(Hibernate.isInitialized(q.getMoreChildren())); | ||||
29 | assertEquals(p.getMoreChildren().size(), 0); | 29 | assertEquals(p.getMoreChildren().size(), 0); | ||||
30 | assertTrue(Hibernate.isInitialized(q.getMoreChildren())); | 30 | assertTrue(Hibernate.isInitialized(q.getMoreChildren())); | ||||
31 | assertEquals(q.getMoreChildren().size(), 2); | 31 | assertEquals(q.getMoreChildren().size(), 2); | ||||
32 | assertTrue(Hibernate.isInitialized(q.getMoreChildren().iterator().next())); | 32 | assertTrue(Hibernate.isInitialized(q.getMoreChildren().iterator().next())); | ||||
33 | assertEquals(3, getSessions().getStatistics().getPrepareStatementCount()); | 33 | assertEquals(3, getSessions().getStatistics().getPrepareStatementCount()); | ||||
34 | Child c = (Child)p.getChildren().get(0); | 34 | Child c = (Child)p.getChildren().get(0); | ||||
35 | c.getFriends().size(); | 35 | c.getFriends().size(); | ||||
36 | s.delete(p); | 36 | s.delete(p); | ||||
37 | s.delete(q); | 37 | s.delete(q); | ||||
38 | t.commit(); | 38 | t.commit(); | ||||
39 | s.close(); | 39 | s.close(); |
Row | Violation |
---|---|
1 | Unmatched statement List parents=s.createCriteria(Parent.class).add(Property.forName("name").between("bar","foo")).addOrder(Order.desc("name")).list(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
2 | Unmatched statement List parents=s.createQuery("from Parent where name between ? and ? order by name desc").setParameter(0,"bar").setParameter(1,"foo").list(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |