|
From: <fab...@us...> - 2008-08-18 14:20:58
|
Revision: 3715
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3715&view=rev
Author: fabiomaulo
Date: 2008-08-18 14:21:05 +0000 (Mon, 18 Aug 2008)
Log Message:
-----------
Partial support of lazy="extra" (collections)
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/CollectionBinder.cs
trunk/nhibernate/src/NHibernate/Collection/PersistentSet.cs
trunk/nhibernate/src/NHibernate/Persister/Collection/AbstractCollectionPersister.cs
trunk/nhibernate/src/NHibernate/Persister/Collection/BasicCollectionPersister.cs
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/Extralazy/
trunk/nhibernate/src/NHibernate.Test/Extralazy/Document.cs
trunk/nhibernate/src/NHibernate.Test/Extralazy/ExtraLazyFixture.cs
trunk/nhibernate/src/NHibernate.Test/Extralazy/Group.cs
trunk/nhibernate/src/NHibernate.Test/Extralazy/SessionAttribute.cs
trunk/nhibernate/src/NHibernate.Test/Extralazy/User.cs
trunk/nhibernate/src/NHibernate.Test/Extralazy/UserGroup.hbm.xml
Modified: trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/CollectionBinder.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/CollectionBinder.cs 2008-08-18 13:38:05 UTC (rev 3714)
+++ trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/CollectionBinder.cs 2008-08-18 14:21:05 UTC (rev 3715)
@@ -167,7 +167,12 @@
// LAZINESS
InitLaziness(node, model, "true", mappings.DefaultLazy);
- // TODO: H3.1 - lazy="extra"
+ XmlAttribute lazyNode = node.Attributes["lazy"];
+ if (lazyNode != null && "extra".Equals(lazyNode.Value))
+ {
+ model.IsLazy = true;
+ model.ExtraLazy = true;
+ }
XmlNode oneToManyNode = node.SelectSingleNode(HbmConstants.nsOneToMany, namespaceManager);
if (oneToManyNode != null)
@@ -507,7 +512,7 @@
string name = subnode.LocalName; //.Name;
- if ("index".Equals(name))
+ if ("index".Equals(name) || "map-key".Equals(name))
{
SimpleValue value = new SimpleValue(model.CollectionTable);
BindSimpleValue(subnode, value, model.IsOneToMany, IndexedCollection.DefaultIndexColumnName);
@@ -515,13 +520,13 @@
if (model.Index.Type == null)
throw new MappingException("map index element must specify a type: " + model.Role);
}
- else if ("index-many-to-many".Equals(name))
+ else if ("index-many-to-many".Equals(name) || "map-key-many-to-many".Equals(name))
{
ManyToOne mto = new ManyToOne(model.CollectionTable);
BindManyToOne(subnode, mto, IndexedCollection.DefaultIndexColumnName, model.IsOneToMany);
model.Index = mto;
}
- else if ("composite-index".Equals(name))
+ else if ("composite-index".Equals(name) || "composite-map-key".Equals(name))
{
Component component = new Component(model);
BindComponent(subnode, component, null, model.Role, "index", model.IsOneToMany);
Modified: trunk/nhibernate/src/NHibernate/Collection/PersistentSet.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Collection/PersistentSet.cs 2008-08-18 13:38:05 UTC (rev 3714)
+++ trunk/nhibernate/src/NHibernate/Collection/PersistentSet.cs 2008-08-18 14:21:05 UTC (rev 3715)
@@ -385,8 +385,7 @@
if (!exists.HasValue)
{
Initialize(true);
- bool contained = set.Remove(o);
- if (contained)
+ if (set.Remove(o))
{
Dirty();
return true;
Modified: trunk/nhibernate/src/NHibernate/Persister/Collection/AbstractCollectionPersister.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Persister/Collection/AbstractCollectionPersister.cs 2008-08-18 13:38:05 UTC (rev 3714)
+++ trunk/nhibernate/src/NHibernate/Persister/Collection/AbstractCollectionPersister.cs 2008-08-18 14:21:05 UTC (rev 3715)
@@ -1443,7 +1443,7 @@
IDataReader rs = null;
try
{
- KeyType.NullSafeSet(st, key, 1, session);
+ KeyType.NullSafeSet(st, key, 0, session);
rs = session.Batcher.ExecuteReader(st);
return rs.Read() ? rs.GetInt32(0) - baseIndex : 0;
}
@@ -1481,8 +1481,8 @@
IDataReader rs = null;
try
{
- KeyType.NullSafeSet(st, key, 1, session);
- indexOrElementType.NullSafeSet(st, indexOrElement, keyColumnNames.Length + 1, session);
+ KeyType.NullSafeSet(st, key, 0, session);
+ indexOrElementType.NullSafeSet(st, indexOrElement, keyColumnNames.Length, session);
rs = session.Batcher.ExecuteReader(st);
try
{
@@ -1520,8 +1520,8 @@
IDataReader rs = null;
try
{
- KeyType.NullSafeSet(st, key, 1, session);
- IndexType.NullSafeSet(st, IncrementIndexByBase(index), keyColumnNames.Length + 1, session);
+ KeyType.NullSafeSet(st, key, 0, session);
+ IndexType.NullSafeSet(st, IncrementIndexByBase(index), keyColumnNames.Length, session);
rs = session.Batcher.ExecuteReader(st);
try
{
Modified: trunk/nhibernate/src/NHibernate/Persister/Collection/BasicCollectionPersister.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Persister/Collection/BasicCollectionPersister.cs 2008-08-18 13:38:05 UTC (rev 3714)
+++ trunk/nhibernate/src/NHibernate/Persister/Collection/BasicCollectionPersister.cs 2008-08-18 14:21:05 UTC (rev 3715)
@@ -74,13 +74,13 @@
insert.AddColumns(new string[] {IdentifierColumnName}, null, IdentifierType);
if (HasIndex)
- insert.AddColumns(IndexColumnNames, null, IndexType);
+ insert.AddColumns(IndexColumnNames, indexColumnIsSettable, IndexType);
- insert.AddColumns(ElementColumnNames, elementColumnIsSettable, ElementType);
-
if (Factory.Settings.IsCommentsEnabled)
insert.SetComment("insert collection row " + Role);
+ insert.AddColumns(ElementColumnNames, elementColumnIsSettable, ElementType);
+
return insert.ToSqlCommandInfo();
}
Added: trunk/nhibernate/src/NHibernate.Test/Extralazy/Document.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Extralazy/Document.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Extralazy/Document.cs 2008-08-18 14:21:05 UTC (rev 3715)
@@ -0,0 +1,34 @@
+namespace NHibernate.Test.Extralazy
+{
+ public class Document
+ {
+ private string title;
+ private string content;
+ private User owner;
+ protected Document() {}
+ public Document(string title, string content, User owner)
+ {
+ this.title = title;
+ this.content = content;
+ this.owner = owner;
+ }
+
+ public virtual string Title
+ {
+ get { return title; }
+ set { title = value; }
+ }
+
+ public virtual string Content
+ {
+ get { return content; }
+ set { content = value; }
+ }
+
+ public virtual User Owner
+ {
+ get { return owner; }
+ set { owner = value; }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Extralazy/ExtraLazyFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Extralazy/ExtraLazyFixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Extralazy/ExtraLazyFixture.cs 2008-08-18 14:21:05 UTC (rev 3715)
@@ -0,0 +1,232 @@
+using System.Collections;
+using NUnit.Framework;
+using NUnit.Framework.SyntaxHelpers;
+
+namespace NHibernate.Test.Extralazy
+{
+ [TestFixture]
+ public class ExtraLazyFixture : TestCase
+ {
+ protected override string MappingsAssembly
+ {
+ get { return "NHibernate.Test"; }
+ }
+
+ protected override IList Mappings
+ {
+ get { return new string[] {"Extralazy.UserGroup.hbm.xml"}; }
+ }
+
+ protected override string CacheConcurrencyStrategy
+ {
+ get { return null; }
+ }
+
+ [Test, Ignore("Not supported yet") ]
+ public void OrphanDelete()
+ {
+ ISession s = OpenSession();
+ ITransaction t = s.BeginTransaction();
+ User gavin = new User("gavin", "secret");
+ Document hia = new Document("HiA", "blah blah blah", gavin);
+ Document hia2 = new Document("HiA2", "blah blah blah blah", gavin);
+ gavin.Documents.Add(hia); // NH: added ; I don't understand how can work in H3.2.5 without add
+ gavin.Documents.Add(hia2);// NH: added
+ s.Persist(gavin);
+ t.Commit();
+ s.Close();
+
+ s = OpenSession();
+ t = s.BeginTransaction();
+ gavin = s.Get<User>("gavin");
+ Assert.AreEqual(2, gavin.Documents.Count);
+ gavin.Documents.Remove(hia2);
+ Assert.IsFalse(gavin.Documents.Contains(hia2));
+ Assert.IsTrue(gavin.Documents.Contains(hia));
+ Assert.AreEqual(1, gavin.Documents.Count);
+ Assert.IsFalse(NHibernateUtil.IsInitialized(gavin.Documents));
+ t.Commit();
+ s.Close();
+
+ s = OpenSession();
+ t = s.BeginTransaction();
+ gavin = s.Get<User>("gavin");
+ Assert.AreEqual(1, gavin.Documents.Count);
+ Assert.IsFalse(gavin.Documents.Contains(hia2));
+ Assert.IsTrue(gavin.Documents.Contains(hia));
+ Assert.IsFalse(NHibernateUtil.IsInitialized(gavin.Documents));
+ Assert.That(s.Get<Document>("HiA2"), Is.Null);
+ gavin.Documents.Clear();
+ Assert.IsTrue(NHibernateUtil.IsInitialized(gavin.Documents));
+ s.Delete(gavin);
+ t.Commit();
+ s.Close();
+ }
+
+ [Test]
+ public void Get()
+ {
+ ISession s = OpenSession();
+ ITransaction t = s.BeginTransaction();
+ User gavin = new User("gavin", "secret");
+ User turin = new User("turin", "tiger");
+ Group g = new Group("developers");
+ g.Users.Add("gavin", gavin);
+ g.Users.Add("turin", turin);
+ s.Persist(g);
+ gavin.Session.Add("foo", new SessionAttribute("foo", "foo bar baz"));
+ gavin.Session.Add("bar", new SessionAttribute("bar", "foo bar baz 2"));
+ t.Commit();
+ s.Close();
+
+ s = OpenSession();
+ t = s.BeginTransaction();
+ g = s.Get<Group>("developers");
+ gavin = (User) g.Users["gavin"];
+ turin = (User) g.Users["turin"];
+ Assert.That(gavin, Is.Not.Null);
+ Assert.That(turin, Is.Not.Null);
+ Assert.That(g.Users["emmanuel"], Is.Null);
+ Assert.IsFalse(NHibernateUtil.IsInitialized(g.Users));
+ Assert.That(gavin.Session["foo"], Is.Not.Null);
+ Assert.That(turin.Session["foo"], Is.Null);
+ Assert.IsFalse(NHibernateUtil.IsInitialized(gavin.Session));
+ Assert.IsFalse(NHibernateUtil.IsInitialized(turin.Session));
+ s.Delete(gavin);
+ s.Delete(turin);
+ s.Delete(g);
+ t.Commit();
+ s.Close();
+ }
+
+ [Test]
+ public void RemoveClear()
+ {
+ ISession s = OpenSession();
+ ITransaction t = s.BeginTransaction();
+ User gavin = new User("gavin", "secret");
+ User turin = new User("turin", "tiger");
+ Group g = new Group("developers");
+ g.Users.Add("gavin", gavin);
+ g.Users.Add("turin", turin);
+ s.Persist(g);
+ gavin.Session.Add("foo", new SessionAttribute("foo", "foo bar baz"));
+ gavin.Session.Add("bar", new SessionAttribute("bar", "foo bar baz 2"));
+ t.Commit();
+ s.Close();
+
+ s = OpenSession();
+ t = s.BeginTransaction();
+ g = s.Get<Group>("developers");
+ gavin = (User) g.Users["gavin"];
+ turin = (User) g.Users["turin"];
+ Assert.IsFalse(NHibernateUtil.IsInitialized(g.Users));
+ g.Users.Clear();
+ gavin.Session.Remove("foo");
+ Assert.IsTrue(NHibernateUtil.IsInitialized(g.Users));
+ Assert.IsTrue(NHibernateUtil.IsInitialized(gavin.Session));
+ t.Commit();
+ s.Close();
+
+ s = OpenSession();
+ t = s.BeginTransaction();
+ g = s.Get<Group>("developers");
+ //Assert.IsTrue( g.Users.IsEmpty() );
+ //Assert.IsFalse( NHibernateUtil.IsInitialized( g.getUsers() ) );
+ gavin = s.Get<User>("gavin");
+ Assert.IsFalse(gavin.Session.Contains("foo"));
+ Assert.IsFalse(NHibernateUtil.IsInitialized(gavin.Session));
+ s.Delete(gavin);
+ s.Delete(turin);
+ s.Delete(g);
+ t.Commit();
+ s.Close();
+ }
+
+ [Test, Ignore("Not supported yet")]
+ public void IndexFormulaMap()
+ {
+ ISession s = OpenSession();
+ ITransaction t = s.BeginTransaction();
+ User gavin = new User("gavin", "secret");
+ User turin = new User("turin", "tiger");
+ Group g = new Group("developers");
+ g.Users.Add("gavin", gavin);
+ g.Users.Add("turin", turin);
+ s.Persist(g);
+ gavin.Session.Add("foo", new SessionAttribute("foo", "foo bar baz"));
+ gavin.Session.Add("bar", new SessionAttribute("bar", "foo bar baz 2"));
+ t.Commit();
+ s.Close();
+
+ s = OpenSession();
+ t = s.BeginTransaction();
+ g = s.Get<Group>("developers");
+ Assert.AreEqual(2, g.Users.Count);
+ g.Users.Remove("turin");
+ IDictionary smap = ((User) g.Users["gavin"]).Session;
+ Assert.AreEqual(2, smap.Count);
+ smap.Remove("bar");
+ t.Commit();
+ s.Close();
+
+ s = OpenSession();
+ t = s.BeginTransaction();
+ g = s.Get<Group>("developers");
+ Assert.AreEqual(1, g.Users.Count);
+ smap = ((User) g.Users["gavin"]).Session;
+ Assert.AreEqual(1, smap.Count);
+ g.Users["gavin"]= turin;
+ gavin = (User) g.Users["gavin"];
+ s.Delete(gavin);
+ Assert.AreEqual(0, s.CreateQuery("select count(*) from SessionAttribute").UniqueResult<long>());
+ t.Commit();
+ s.Close();
+
+ s = OpenSession();
+ t = s.BeginTransaction();
+ g = s.Get<Group>("developers");
+ Assert.AreEqual(1, g.Users.Count);
+ turin = (User) g.Users["turin"];
+ smap = turin.Session;
+ Assert.AreEqual(0, smap.Count);
+ Assert.AreEqual(1L, s.CreateQuery("select count(*) from User").UniqueResult<long>());
+ s.Delete(g);
+ s.Delete(turin);
+ Assert.AreEqual(0, s.CreateQuery("select count(*) from User").UniqueResult<long>());
+ t.Commit();
+ s.Close();
+ }
+
+ [Test]
+ public void SQLQuery()
+ {
+ ISession s = OpenSession();
+ ITransaction t = s.BeginTransaction();
+ User gavin = new User("gavin", "secret");
+ User turin = new User("turin", "tiger");
+ gavin.Session.Add("foo", new SessionAttribute("foo", "foo bar baz"));
+ gavin.Session.Add("bar", new SessionAttribute("bar", "foo bar baz 2"));
+ s.Persist(gavin);
+ s.Persist(turin);
+ s.Flush();
+ s.Clear();
+
+ IList results = s.GetNamedQuery("UserSessionData").SetParameter("uname", "%in").List();
+ Assert.AreEqual(2, results.Count);
+ gavin = (User) ((object[]) results[0])[0];
+ Assert.AreEqual("gavin", gavin.Name);
+ Assert.AreEqual(2, gavin.Session.Count);
+ t.Commit();
+ s.Close();
+
+ using (s = OpenSession())
+ using (t= s.BeginTransaction())
+ {
+ s.Delete("from SessionAttribute");
+ s.Delete("from User");
+ t.Commit();
+ }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Extralazy/Group.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Extralazy/Group.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Extralazy/Group.cs 2008-08-18 14:21:05 UTC (rev 3715)
@@ -0,0 +1,27 @@
+using System.Collections;
+
+namespace NHibernate.Test.Extralazy
+{
+ public class Group
+ {
+ private string name;
+ private IDictionary users = new Hashtable();
+ protected Group() {}
+ public Group(string name)
+ {
+ this.name = name;
+ }
+
+ public virtual string Name
+ {
+ get { return name; }
+ set { name = value; }
+ }
+
+ public virtual IDictionary Users
+ {
+ get { return users; }
+ set { users = value; }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Extralazy/SessionAttribute.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Extralazy/SessionAttribute.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Extralazy/SessionAttribute.cs 2008-08-18 14:21:05 UTC (rev 3715)
@@ -0,0 +1,42 @@
+namespace NHibernate.Test.Extralazy
+{
+ public class SessionAttribute
+ {
+#pragma warning disable 169
+ private long id;
+#pragma warning restore 169
+ private string name;
+ private string stringData;
+ private object objectData;
+ protected SessionAttribute() {}
+ public SessionAttribute(string name, string stringData)
+ {
+ this.name = name;
+ this.stringData = stringData;
+ }
+
+ public SessionAttribute(string name, object objectData)
+ {
+ this.name = name;
+ this.objectData = objectData;
+ }
+
+ public virtual string Name
+ {
+ get { return name; }
+ set { name = value; }
+ }
+
+ public virtual string StringData
+ {
+ get { return stringData; }
+ set { stringData = value; }
+ }
+
+ public virtual object ObjectData
+ {
+ get { return objectData; }
+ set { objectData = value; }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Extralazy/User.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Extralazy/User.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Extralazy/User.cs 2008-08-18 14:21:05 UTC (rev 3715)
@@ -0,0 +1,43 @@
+using System.Collections;
+using Iesi.Collections;
+
+namespace NHibernate.Test.Extralazy
+{
+ public class User
+ {
+ private string name;
+ private string password;
+ private IDictionary session = new Hashtable();
+ private ISet documents = new HashedSet();
+ protected User() {}
+ public User(string name, string password)
+ {
+ this.name = name;
+ this.password = password;
+ }
+
+ public virtual string Name
+ {
+ get { return name; }
+ set { name = value; }
+ }
+
+ public virtual string Password
+ {
+ get { return password; }
+ set { password = value; }
+ }
+
+ public virtual IDictionary Session
+ {
+ get { return session; }
+ set { session = value; }
+ }
+
+ public virtual ISet Documents
+ {
+ get { return documents; }
+ set { documents = value; }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Extralazy/UserGroup.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Extralazy/UserGroup.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Extralazy/UserGroup.hbm.xml 2008-08-18 14:21:05 UTC (rev 3715)
@@ -0,0 +1,62 @@
+<?xml version="1.0"?>
+
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.Extralazy">
+
+ <class name="Group" table="groups">
+ <id name="Name"/>
+ <map name="Users" cascade="persist" table="group_user" lazy="extra">
+ <key column="groupName"/>
+ <map-key formula="lower(personName)" type="string"/>
+ <many-to-many class="User" column="personName"/>
+ </map>
+ </class>
+
+ <class name="User" table="users">
+ <id name="Name"/>
+ <property name="Password"/>
+ <map name="Session" lazy="extra" cascade="persist,save-update,delete,delete-orphan">
+ <key column="userName"/> <!--Need to investigate not-null="true"-->
+ <map-key column="name" type="string"/>
+ <one-to-many class="SessionAttribute"/>
+ </map>
+ <set name="Documents" inverse="true" lazy="extra" cascade="all,delete-orphan">
+ <key column="owner"/>
+ <one-to-many class="Document"/>
+ </set>
+ </class>
+
+ <class name="Document" table="documents">
+ <id name="Title"/>
+ <property name="Content" type="string" length="10000"/>
+ <many-to-one name="Owner" not-null="true"/>
+ </class>
+
+ <class name="SessionAttribute" table="session_attributes">
+ <id name="id" access="field">
+ <generator class="native"/>
+ </id>
+ <property name="Name" update="false"/> <!--Need to investigate not-null="true"-->
+ <property name="StringData"/>
+ <property name="ObjectData" type="Serializable"/>
+ </class>
+ <!--
+ NH the map of SessionAttribute in H3.2.6 have insert="false" for property "Name" but it can't work with not-null="true"
+ We remove the inconsistence.
+ -->
+
+ <sql-query name="UserSessionData">
+ <return alias="u" class="User"/>
+ <return-join alias="s" property="u.Session"/>
+ select
+ lower(u.name) as {u.Name}, lower(u.password) as {u.Password},
+ lower(s.userName) as {s.key}, lower(s.name) as {s.index}, s.id as {s.element},
+ {s.element.*}
+ from users u
+ join session_attributes s on lower(s.userName) = lower(u.name)
+ where u.name like :uname
+ </sql-query>
+
+
+</hibernate-mapping>
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj 2008-08-18 13:38:05 UTC (rev 3714)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj 2008-08-18 14:21:05 UTC (rev 3715)
@@ -173,6 +173,11 @@
<Compile Include="ExpressionTest\SQLExpressionFixture.cs" />
<Compile Include="ExpressionTest\SubQueries\Classes.cs" />
<Compile Include="ExpressionTest\SubQueries\SubQueriesSqlFixture.cs" />
+ <Compile Include="Extralazy\Document.cs" />
+ <Compile Include="Extralazy\ExtraLazyFixture.cs" />
+ <Compile Include="Extralazy\Group.cs" />
+ <Compile Include="Extralazy\SessionAttribute.cs" />
+ <Compile Include="Extralazy\User.cs" />
<Compile Include="FilterTest\BinaryFiltered.cs" />
<Compile Include="FilterTest\Category.cs" />
<Compile Include="FilterTest\Department.cs" />
@@ -1410,6 +1415,7 @@
<EmbeddedResource Include="CompositeId\Order.hbm.xml" />
<EmbeddedResource Include="CompositeId\Product.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="Extralazy\UserGroup.hbm.xml" />
<EmbeddedResource Include="Naturalid\Immutable\User.hbm.xml" />
<EmbeddedResource Include="Naturalid\Mutable\User.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1419\Mappings.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|