Skip to content

Commit 3f9ac00

Browse files
author
mickfold
committed
Added support for one-to-one Orphan deletes with MappingByCode.
1 parent d25d292 commit 3f9ac00

File tree

58 files changed

+1087
-2033
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+1087
-2033
lines changed

src/NHibernate.Test/MappingByCode/MappersTests/ManyToOneMapperTest.cs

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,6 @@ public void AssignCascadeStyle()
3838
hbm.cascade.Split(',').Select(w => w.Trim()).Should().Contain("persist").And.Contain("delete");
3939
}
4040

41-
[Test]
42-
public void AutoCleanUnsupportedCascadeStyle()
43-
{
44-
var hbmMapping = new HbmMapping();
45-
var hbm = new HbmManyToOne();
46-
var mapper = new ManyToOneMapper(null, hbm, hbmMapping);
47-
mapper.Cascade(Mapping.ByCode.Cascade.Persist | Mapping.ByCode.Cascade.DeleteOrphans | Mapping.ByCode.Cascade.Remove);
48-
hbm.cascade.Split(',').Select(w => w.Trim()).All(w => w.Satisfy(cascade => !cascade.Contains("orphan")));
49-
}
50-
5141
[Test]
5242
public void CanSetAccessor()
5343
{

src/NHibernate.Test/MappingByCode/MappersTests/OneToOneMapperTest.cs

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,6 @@ public void AssignCascadeStyle()
2929
hbm.cascade.Split(',').Select(w => w.Trim()).Should().Contain("persist").And.Contain("delete");
3030
}
3131

32-
[Test]
33-
public void AutoCleanUnsupportedCascadeStyle()
34-
{
35-
var hbm = new HbmOneToOne();
36-
var mapper = new OneToOneMapper(null, hbm);
37-
mapper.Cascade(Mapping.ByCode.Cascade.Persist | Mapping.ByCode.Cascade.DeleteOrphans | Mapping.ByCode.Cascade.Remove);
38-
hbm.cascade.Split(',').Select(w => w.Trim()).All(w => w.Satisfy(cascade => !cascade.Contains("orphan")));
39-
}
40-
4132
[Test]
4233
public void CanSetAccessor()
4334
{

src/NHibernate.Test/NHSpecificTest/NH1262/fk/bidirectional/DeleteOneToOneOrphansTest.cs renamed to src/NHibernate.Test/NHSpecificTest/NH1262/Hbm/Fk/Bidirectional/DeleteOneToOneOrphansTest.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
using NUnit.Framework;
22

3-
namespace NHibernate.Test.NHSpecificTest.NH1262.fk.bidirectional
3+
namespace NHibernate.Test.NHSpecificTest.NH1262.Hbm.Fk.Bidirectional
44
{
55
[TestFixture]
66
public class DeleteOneToOneOrphansTest : BugTestCase
77
{
88
public override string BugNumber
99
{
10-
get { return "NH1262.fk.bidirectional"; }
10+
get { return "NH1262.Hbm.Fk.Bidirectional"; }
1111
}
1212

1313
protected override void OnSetUp()
@@ -74,6 +74,5 @@ public void TestOrphanedWhileManaged()
7474
t.Commit();
7575
}
7676
}
77-
7877
}
79-
}
78+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
3+
namespace="NHibernate.Test.NHSpecificTest.NH1262.Hbm.Fk.Bidirectional"
4+
assembly="NHibernate.Test" >
5+
6+
<class name="Employee">
7+
<id name="Id" type="long" column="Id" >
8+
<generator class="increment" />
9+
</id>
10+
<one-to-one name="Info"
11+
property-ref="EmployeeDetails"
12+
class="EmployeeInfo"
13+
constrained="false"
14+
cascade="all,delete-orphan" />
15+
</class>
16+
17+
<class name="EmployeeInfo">
18+
<id name="Id" type="long" column="Id" >
19+
<generator class="increment" />
20+
</id>
21+
<many-to-one name="EmployeeDetails"
22+
column="employee_id"
23+
unique="true"
24+
not-null="true" />
25+
</class>
26+
27+
</hibernate-mapping>

src/NHibernate.Test/NHSpecificTest/NH1262/fk/bidirectional/Model.cs renamed to src/NHibernate.Test/NHSpecificTest/NH1262/Hbm/Fk/Bidirectional/Model.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-

2-
namespace NHibernate.Test.NHSpecificTest.NH1262.fk.bidirectional
1+
namespace NHibernate.Test.NHSpecificTest.NH1262.Hbm.Fk.Bidirectional
32
{
43
public class Employee
54
{
@@ -27,4 +26,4 @@ public EmployeeInfo(Employee emp)
2726
EmployeeDetails = emp;
2827
}
2928
}
30-
}
29+
}

src/NHibernate.Test/NHSpecificTest/NH1262/fk/composite/DeleteOneToOneOrphansTest.cs renamed to src/NHibernate.Test/NHSpecificTest/NH1262/Hbm/Fk/Composite/DeleteOneToOneOrphansTest.cs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
using NUnit.Framework;
22

3-
namespace NHibernate.Test.NHSpecificTest.NH1262.fk.composite
3+
namespace NHibernate.Test.NHSpecificTest.NH1262.Hbm.Fk.Composite
44
{
55
public class DeleteOneToOneOrphansTest : BugTestCase
66
{
7-
87
public override string BugNumber
98
{
10-
get { return "NH1262.fk.composite"; }
9+
get { return "NH1262.Hbm.Fk.Composite"; }
1110
}
1211

1312
protected override void OnSetUp()
@@ -19,6 +18,7 @@ protected override void OnSetUp()
1918
var emp = new Employee();
2019
emp.Info = new EmployeeInfo( 1L, 1L);
2120

21+
s.Save(emp.Info);
2222
s.Save(emp);
2323
t.Commit();
2424
}
@@ -37,7 +37,6 @@ protected override void OnTearDown()
3737
}
3838
}
3939

40-
4140
[Test]
4241
public void TestOrphanedWhileManaged()
4342
{
@@ -57,11 +56,10 @@ public void TestOrphanedWhileManaged()
5756

5857
empId = emp.Id;
5958
emp.Info = null;
59+
6060
t.Commit();
61-
6261
}
6362

64-
6563
using (var s = OpenSession())
6664
using (var t = s.BeginTransaction())
6765
{
@@ -76,4 +74,4 @@ public void TestOrphanedWhileManaged()
7674
}
7775
}
7876
}
79-
}
77+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
3+
namespace="NHibernate.Test.NHSpecificTest.NH1262.Hbm.Fk.Composite"
4+
assembly="NHibernate.Test" >
5+
6+
<class name="Employee">
7+
<id name="Id" type="long" column="Id" >
8+
<generator class="increment" />
9+
</id>
10+
<many-to-one name="Info"
11+
unique="true"
12+
not-found="exception"
13+
cascade="all,delete-orphan" >
14+
<column name="COMP_ID" />
15+
<column name="PERS_ID" />
16+
</many-to-one>
17+
</class>
18+
19+
<class name="EmployeeInfo">
20+
<composite-id class="EmployeeInfo+Identifier" name="Id" >
21+
<key-property name="CompanyId" column="COMP_ID" />
22+
<key-property name="PersonId" column="PERS_ID" />
23+
</composite-id>
24+
</class>
25+
26+
</hibernate-mapping>

src/NHibernate.Test/NHSpecificTest/NH1262/fk/composite/Model.cs renamed to src/NHibernate.Test/NHSpecificTest/NH1262/Hbm/Fk/Composite/Model.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using System;
22

3-
namespace NHibernate.Test.NHSpecificTest.NH1262.fk.composite
3+
namespace NHibernate.Test.NHSpecificTest.NH1262.Hbm.Fk.Composite
44
{
55
public class Employee
66
{
@@ -79,6 +79,4 @@ public EmployeeInfo(Identifier id)
7979
this.Id = id;
8080
}
8181
}
82-
83-
84-
}
82+
}
Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
using NUnit.Framework;
22

3-
namespace NHibernate.Test.NHSpecificTest.NH1262.fk.reversed.bidirectional
3+
namespace NHibernate.Test.NHSpecificTest.NH1262.Hbm.Fk.Reversed.Bidirectional
44
{
55
public class DeleteOneToOneOrphansTest : BugTestCase
66
{
77
public override string BugNumber
88
{
9-
get { return "NH1262.fk.reversed.bidirectional"; }
9+
get { return "NH1262.Hbm.Fk.Reversed.Bidirectional"; }
1010
}
1111

1212
protected override void OnSetUp()
@@ -23,7 +23,6 @@ protected override void OnSetUp()
2323
}
2424
}
2525

26-
2726
protected override void OnTearDown()
2827
{
2928
base.OnTearDown();
@@ -60,7 +59,6 @@ public void TestOrphanedWhileManaged()
6059
tx.Commit();
6160
}
6261

63-
6462
using (var s = OpenSession())
6563
using (var tx = s.BeginTransaction())
6664
{
@@ -74,8 +72,6 @@ public void TestOrphanedWhileManaged()
7472

7573
tx.Commit();
7674
}
77-
78-
7975
}
8076
}
8177
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
3+
namespace="NHibernate.Test.NHSpecificTest.NH1262.Hbm.Fk.Reversed.Bidirectional"
4+
assembly="NHibernate.Test" >
5+
6+
<class name="Employee">
7+
<id name="Id" type="long" column="Id" >
8+
<generator class="increment" />
9+
</id>
10+
<many-to-one name="Info"
11+
column="Info_id"
12+
unique="true"
13+
cascade="all,delete-orphan" />
14+
</class>
15+
16+
<class name="EmployeeInfo">
17+
<id name="Id" type="long" column="Id" >
18+
<generator class="increment" />
19+
</id>
20+
<one-to-one name="EmployeeDetails"
21+
property-ref="Info"
22+
class="Employee" />
23+
</class>
24+
25+
</hibernate-mapping>

0 commit comments

Comments
 (0)