Skip to content

Commit 3140fe4

Browse files
committed
Merge pull request #395 from individym/NH-3754
NH-3754 - Exception "System.ArgumentNullException" when using ICriteria with AliasToBeanResultTransformer and SecondLevelCache
2 parents c3a2f96 + 278f387 commit 3140fe4

File tree

5 files changed

+102
-1
lines changed

5 files changed

+102
-1
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
using NHibernate.Cache;
2+
using NHibernate.Cfg;
3+
using NHibernate.Criterion;
4+
using NHibernate.Transform;
5+
using NUnit.Framework;
6+
7+
namespace NHibernate.Test.NHSpecificTest.NH3754
8+
{
9+
[TestFixture]
10+
public class Fixture : BugTestCase
11+
{
12+
public override string BugNumber
13+
{
14+
get { return "NH3754"; }
15+
}
16+
17+
private class TestEntity
18+
{
19+
public string Name { get; set; }
20+
}
21+
22+
protected override void OnSetUp()
23+
{
24+
base.OnSetUp();
25+
cfg.Properties[Environment.CacheProvider] = typeof(HashtableCacheProvider).AssemblyQualifiedName;
26+
cfg.Properties[Environment.UseQueryCache] = "true";
27+
}
28+
29+
[Test]
30+
public void SecondLevelCacheWithResultTransformer()
31+
{
32+
using (ISession session = OpenSession())
33+
{
34+
using (ITransaction t = session.BeginTransaction())
35+
{
36+
User user = new User();
37+
user.Name = "Test";
38+
user.Id = 1;
39+
session.Save(user);
40+
session.Flush();
41+
session.Clear();
42+
var list = session.CreateCriteria<User>()
43+
.SetProjection(Projections.Property<User>(x => x.Name).As("Name")).SetResultTransformer(new AliasToBeanResultTransformer(typeof (TestEntity)))
44+
.SetCacheable(false)
45+
.List<TestEntity>();
46+
Assert.AreEqual(1, list.Count);
47+
Assert.AreEqual("Test", list[0].Name);
48+
49+
session.Delete("from User");
50+
t.Commit();
51+
}
52+
}
53+
}
54+
}
55+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
3+
assembly="NHibernate.Test"
4+
namespace="NHibernate.Test.NHSpecificTest.NH3754"
5+
default-lazy="true">
6+
7+
<class name="User" table="`user`">
8+
<id name="Id">
9+
<generator class="assigned" />
10+
</id>
11+
<property name="Name" />
12+
<property name="IsActive" column="is_active" />
13+
</class>
14+
15+
</hibernate-mapping>
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
namespace NHibernate.Test.NHSpecificTest.NH3754
2+
{
3+
public class User
4+
{
5+
private int _id;
6+
private string _name;
7+
private short _isActive;
8+
9+
public virtual int Id
10+
{
11+
get { return _id; }
12+
set { _id = value; }
13+
}
14+
15+
public virtual string Name
16+
{
17+
get { return _name; }
18+
set { _name = value; }
19+
}
20+
21+
public virtual short IsActive
22+
{
23+
get { return _isActive; }
24+
set { _isActive = value; }
25+
}
26+
}
27+
28+
}

src/NHibernate.Test/NHibernate.Test.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -852,6 +852,8 @@
852852
<Compile Include="NHSpecificTest\NH3202\Fixture.cs" />
853853
<Compile Include="NHSpecificTest\NH3604\Entity.cs" />
854854
<Compile Include="NHSpecificTest\NH3604\FixtureByCode.cs" />
855+
<Compile Include="NHSpecificTest\NH3754\Fixture.cs" />
856+
<Compile Include="NHSpecificTest\NH3754\Model.cs" />
855857
<Compile Include="NHSpecificTest\NH646\Domain.cs" />
856858
<Compile Include="NHSpecificTest\NH646\Fixture.cs" />
857859
<Compile Include="NHSpecificTest\NH3234\Fixture.cs" />
@@ -3125,6 +3127,7 @@
31253127
<EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" />
31263128
</ItemGroup>
31273129
<ItemGroup>
3130+
<EmbeddedResource Include="NHSpecificTest\NH3754\Mappings.hbm.xml" />
31283131
<EmbeddedResource Include="LazyComponentTest\Person.hbm.xml" />
31293132
<Content Include="NHSpecificTest\NH3372\Mappings.hbm.xml" />
31303133
<EmbeddedResource Include="NHSpecificTest\NH3567\Mappings.hbm.xml" />

src/NHibernate/Loader/Criteria/CriteriaLoader.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public IType[] ResultTypes
7474
get { return resultTypes; }
7575
}
7676

77-
protected string[] ResultRowAliases
77+
protected override string[] ResultRowAliases
7878
{
7979
get { return userAliases; }
8080
}

0 commit comments

Comments
 (0)