aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Data/NHibernate/NHibernateInventoryData.cs64
-rw-r--r--OpenSim/Data/NHibernate/Resources/AssetBase.hbm.xml2
-rw-r--r--OpenSim/Data/NHibernate/Resources/InventoryFolderBase.hbm.xml6
-rw-r--r--OpenSim/Data/NHibernate/Resources/InventoryItemBase.hbm.xml10
-rw-r--r--OpenSim/Data/NHibernate/Types/LLUUIDType.cs12
5 files changed, 48 insertions, 46 deletions
diff --git a/OpenSim/Data/NHibernate/NHibernateInventoryData.cs b/OpenSim/Data/NHibernate/NHibernateInventoryData.cs
index 8bc41c9..8043348 100644
--- a/OpenSim/Data/NHibernate/NHibernateInventoryData.cs
+++ b/OpenSim/Data/NHibernate/NHibernateInventoryData.cs
@@ -99,8 +99,9 @@ namespace OpenSim.Data.NHibernate
99 { 99 {
100 using(ISession session = factory.OpenSession()) { 100 using(ISession session = factory.OpenSession()) {
101 try { 101 try {
102 return session.Load(typeof(InventoryItemBase), item.ToString()) as InventoryItemBase; 102 return session.Load(typeof(InventoryItemBase), item) as InventoryItemBase;
103 } catch { 103 } catch {
104 m_log.ErrorFormat("Couldn't find inventory item: {0}", item);
104 return null; 105 return null;
105 } 106 }
106 } 107 }
@@ -151,7 +152,7 @@ namespace OpenSim.Data.NHibernate
151 { 152 {
152 using(ISession session = factory.OpenSession()) { 153 using(ISession session = factory.OpenSession()) {
153 using(ITransaction transaction = session.BeginTransaction()) { 154 using(ITransaction transaction = session.BeginTransaction()) {
154 session.Delete(itemID.ToString()); 155 session.Delete(itemID);
155 transaction.Commit(); 156 transaction.Commit();
156 } 157 }
157 } 158 }
@@ -167,8 +168,9 @@ namespace OpenSim.Data.NHibernate
167 { 168 {
168 using(ISession session = factory.OpenSession()) { 169 using(ISession session = factory.OpenSession()) {
169 try { 170 try {
170 return session.Load(typeof(InventoryFolderBase), folder.ToString()) as InventoryFolderBase; 171 return session.Load(typeof(InventoryFolderBase), folder) as InventoryFolderBase;
171 } catch { 172 } catch {
173 m_log.ErrorFormat("Couldn't find inventory item: {0}", folder);
172 return null; 174 return null;
173 } 175 }
174 } 176 }
@@ -296,8 +298,8 @@ namespace OpenSim.Data.NHibernate
296 { 298 {
297 using(ISession session = factory.OpenSession()) { 299 using(ISession session = factory.OpenSession()) {
298 try { 300 try {
299 IQuery query = session.CreateQuery("from InventoryItems i where i.parentFolderID = :parent"); 301 IQuery query = session.CreateQuery("from InventoryItems i where i.Folder = :folder");
300 query.SetString("parent", folderID.ToString()); 302 query.SetString("folder", folderID.ToString());
301 List<InventoryItemBase> list = new List<InventoryItemBase>(); 303 List<InventoryItemBase> list = new List<InventoryItemBase>();
302 foreach (InventoryItemBase item in query.List()) 304 foreach (InventoryItemBase item in query.List())
303 { 305 {
@@ -318,21 +320,21 @@ namespace OpenSim.Data.NHibernate
318 // see InventoryItemBase.getUserRootFolder 320 // see InventoryItemBase.getUserRootFolder
319 public InventoryFolderBase getUserRootFolder(LLUUID user) 321 public InventoryFolderBase getUserRootFolder(LLUUID user)
320 { 322 {
321// using(ISession session = factory.OpenSession()) { 323 using(ISession session = factory.OpenSession()) {
322// try { 324 try {
323// IQuery query = session.CreateQuery("from InventoryItems i where i.parentFolderID = :parent"); 325 IQuery query = session.CreateQuery("from InventoryFolders i where i.ParentID = :parent and i.Owner = :owner");
324// query.SetString("parent", folderID.ToString()); 326 query.SetParameter("parent", LLUUID.Zero, NHibernateUtil.Custom(typeof(LLUUIDUserType)));
325// List<InventoryItemBase> list = new List<InventoryItemBase>(); 327 query.SetParameter("owner", user, NHibernateUtil.Custom(typeof(LLUUIDUserType)));
326// foreach (InventoryItemBase item in query.List()) 328 foreach (InventoryFolderBase folder in query.List())
327// { 329 {
328// list.Add(item); 330 return folder;
329// } 331 }
330// return list; 332 m_log.ErrorFormat("No Inventory Root Folder Found for: {0}", user);
331// } catch { 333 return new InventoryFolderBase();
332// return new List<InventoryItemBase>(); 334 } catch {
333// } 335 return new InventoryFolderBase();
334// } 336 }
335 return new InventoryFolderBase(); 337 }
336 } 338 }
337 339
338 /// <summary> 340 /// <summary>
@@ -340,19 +342,19 @@ namespace OpenSim.Data.NHibernate
340 /// </summary> 342 /// </summary>
341 /// <param name="folders">list where folders will be appended</param> 343 /// <param name="folders">list where folders will be appended</param>
342 /// <param name="parentID">ID of parent</param> 344 /// <param name="parentID">ID of parent</param>
343 protected void getInventoryFolders(ref List<InventoryFolderBase> folders, LLUUID parentID) 345 private void getInventoryFolders(ref List<InventoryFolderBase> folders, LLUUID parentID)
344 { 346 {
345 using(ISession session = factory.OpenSession()) { 347 using(ISession session = factory.OpenSession()) {
346 try { 348 // try {
347 IQuery query = session.CreateQuery("from InventoryFolders i where i.parentFolderID = :parent"); 349 IQuery query = session.CreateQuery("from InventoryFolders i where i.ParentID = :parent");
348 query.SetString("parent", parentID.ToString()); 350 query.SetParameter("parent", parentID, NHibernateUtil.Custom(typeof(LLUUIDUserType)));
349 foreach (InventoryFolderBase item in query.List()) 351 foreach (InventoryFolderBase item in query.List())
350 { 352 {
351 folders.Add(item); 353 folders.Add(item);
352 } 354 }
353 } catch { 355 // } catch {
354 356 // m_log.ErrorFormat("Can't run getInventoryFolders for Folder ID: {0}", parentID);
355 } 357 // }
356 } 358 }
357 } 359 }
358 360
@@ -364,7 +366,7 @@ namespace OpenSim.Data.NHibernate
364 public List<InventoryFolderBase> getInventoryFolders(LLUUID parentID) 366 public List<InventoryFolderBase> getInventoryFolders(LLUUID parentID)
365 { 367 {
366 List<InventoryFolderBase> folders = new List<InventoryFolderBase>(); 368 List<InventoryFolderBase> folders = new List<InventoryFolderBase>();
367 getInventoryFolders(ref folders, Util.ToRawUuidString(parentID)); 369 getInventoryFolders(ref folders, parentID);
368 return folders; 370 return folders;
369 } 371 }
370 372
@@ -372,11 +374,11 @@ namespace OpenSim.Data.NHibernate
372 public List<InventoryFolderBase> getFolderHierarchy(LLUUID parentID) 374 public List<InventoryFolderBase> getFolderHierarchy(LLUUID parentID)
373 { 375 {
374 List<InventoryFolderBase> folders = new List<InventoryFolderBase>(); 376 List<InventoryFolderBase> folders = new List<InventoryFolderBase>();
375 getInventoryFolders(ref folders, Util.ToRawUuidString(parentID)); 377 getInventoryFolders(ref folders, parentID);
376 378
377 for (int i = 0; i < folders.Count; i++) 379 for (int i = 0; i < folders.Count; i++)
378 getInventoryFolders(ref folders, Util.ToRawUuidString(folders[i].ID)); 380 getInventoryFolders(ref folders, folders[i].ID);
379 381
380 return folders; 382 return folders;
381 } 383 }
382 } 384 }
diff --git a/OpenSim/Data/NHibernate/Resources/AssetBase.hbm.xml b/OpenSim/Data/NHibernate/Resources/AssetBase.hbm.xml
index 086fbc1..3c94d92 100644
--- a/OpenSim/Data/NHibernate/Resources/AssetBase.hbm.xml
+++ b/OpenSim/Data/NHibernate/Resources/AssetBase.hbm.xml
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8" ?> 1<?xml version="1.0" encoding="utf-8" ?>
2<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> 2<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
3 <class name="OpenSim.Framework.AssetBase, OpenSim.Framework" table="Assets" lazy="false"> 3 <class name="OpenSim.Framework.AssetBase, OpenSim.Framework" table="Assets" lazy="false">
4 <id name="FullID" column="UUID" type="OpenSim.Data.NHibernate.LLUUIDString, OpenSim.Data.NHibernate"> 4 <id name="FullID" column="UUID" type="OpenSim.Data.NHibernate.LLUUIDUserType, OpenSim.Data.NHibernate">
5 <generator class="assigned" /> 5 <generator class="assigned" />
6 </id> 6 </id>
7 <property name="Type" type="SByte" /> 7 <property name="Type" type="SByte" />
diff --git a/OpenSim/Data/NHibernate/Resources/InventoryFolderBase.hbm.xml b/OpenSim/Data/NHibernate/Resources/InventoryFolderBase.hbm.xml
index 4de0b7c..71a6602 100644
--- a/OpenSim/Data/NHibernate/Resources/InventoryFolderBase.hbm.xml
+++ b/OpenSim/Data/NHibernate/Resources/InventoryFolderBase.hbm.xml
@@ -1,13 +1,13 @@
1<?xml version="1.0" encoding="utf-8" ?> 1<?xml version="1.0" encoding="utf-8" ?>
2<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> 2<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
3 <class name="OpenSim.Framework.InventoryFolderBase, OpenSim.Framework" table="InventoryFolders" lazy="false"> 3 <class name="OpenSim.Framework.InventoryFolderBase, OpenSim.Framework" table="InventoryFolders" lazy="false">
4 <id name="ID" type="OpenSim.Data.NHibernate.LLUUIDString, OpenSim.Data.NHibernate"> 4 <id name="ID" type="OpenSim.Data.NHibernate.LLUUIDUserType, OpenSim.Data.NHibernate">
5 <generator class="assigned" /> 5 <generator class="assigned" />
6 </id> 6 </id>
7 <property name="Type" type="short" /> 7 <property name="Type" type="short" />
8 <property name="Version" type="short" /> 8 <property name="Version" type="short" />
9 <property name="ParentID" index="folder_parent_id" type="OpenSim.Data.NHibernate.LLUUIDString, OpenSim.Data.NHibernate" /> 9 <property name="ParentID" index="folder_parent_id" type="OpenSim.Data.NHibernate.LLUUIDUserType, OpenSim.Data.NHibernate" />
10 <property name="Owner" index="folder_owner_id" type="OpenSim.Data.NHibernate.LLUUIDString, OpenSim.Data.NHibernate" /> 10 <property name="Owner" index="folder_owner_id" type="OpenSim.Data.NHibernate.LLUUIDUserType, OpenSim.Data.NHibernate" />
11 <property name="Name" type="String" length="64" /> 11 <property name="Name" type="String" length="64" />
12 </class> 12 </class>
13</hibernate-mapping> \ No newline at end of file 13</hibernate-mapping> \ No newline at end of file
diff --git a/OpenSim/Data/NHibernate/Resources/InventoryItemBase.hbm.xml b/OpenSim/Data/NHibernate/Resources/InventoryItemBase.hbm.xml
index c4e9b01..851f5fc 100644
--- a/OpenSim/Data/NHibernate/Resources/InventoryItemBase.hbm.xml
+++ b/OpenSim/Data/NHibernate/Resources/InventoryItemBase.hbm.xml
@@ -1,15 +1,15 @@
1<?xml version="1.0" encoding="utf-8" ?> 1<?xml version="1.0" encoding="utf-8" ?>
2<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> 2<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
3 <class name="OpenSim.Framework.InventoryItemBase, OpenSim.Framework" table="InventoryItems" lazy="false"> 3 <class name="OpenSim.Framework.InventoryItemBase, OpenSim.Framework" table="InventoryItems" lazy="false">
4 <id name="ID" type="OpenSim.Data.NHibernate.LLUUIDString, OpenSim.Data.NHibernate"> 4 <id name="ID" type="OpenSim.Data.NHibernate.LLUUIDUserType, OpenSim.Data.NHibernate">
5 <generator class="assigned" /> 5 <generator class="assigned" />
6 </id> 6 </id>
7 <property name="InvType" type="int" /> 7 <property name="InvType" type="int" />
8 <property name="AssetType" type="int" /> 8 <property name="AssetType" type="int" />
9 <property name="AssetID" type="OpenSim.Data.NHibernate.LLUUIDString, OpenSim.Data.NHibernate" /> 9 <property name="AssetID" type="OpenSim.Data.NHibernate.LLUUIDUserType, OpenSim.Data.NHibernate" />
10 <property name="Folder" index="item_folder_id" type="OpenSim.Data.NHibernate.LLUUIDString, OpenSim.Data.NHibernate" /> 10 <property name="Folder" index="item_folder_id" type="OpenSim.Data.NHibernate.LLUUIDUserType, OpenSim.Data.NHibernate" />
11 <property name="Owner" index="item_owner_id" type="OpenSim.Data.NHibernate.LLUUIDString, OpenSim.Data.NHibernate" /> 11 <property name="Owner" index="item_owner_id" type="OpenSim.Data.NHibernate.LLUUIDUserType, OpenSim.Data.NHibernate" />
12 <property name="Creator" type="OpenSim.Data.NHibernate.LLUUIDString, OpenSim.Data.NHibernate" /> 12 <property name="Creator" type="OpenSim.Data.NHibernate.LLUUIDUserType, OpenSim.Data.NHibernate" />
13 <property name="Name" type="String" length="64" /> 13 <property name="Name" type="String" length="64" />
14 <property name="Description" type="String" length="64" /> 14 <property name="Description" type="String" length="64" />
15 <property name="NextPermissions" type="UInt32" /> 15 <property name="NextPermissions" type="UInt32" />
diff --git a/OpenSim/Data/NHibernate/Types/LLUUIDType.cs b/OpenSim/Data/NHibernate/Types/LLUUIDType.cs
index b8e5739..babc7fd 100644
--- a/OpenSim/Data/NHibernate/Types/LLUUIDType.cs
+++ b/OpenSim/Data/NHibernate/Types/LLUUIDType.cs
@@ -1,5 +1,6 @@
1using System; 1using System;
2using System.Data; 2using System.Data;
3using NHibernate;
3using NHibernate.SqlTypes; 4using NHibernate.SqlTypes;
4using NHibernate.UserTypes; 5using NHibernate.UserTypes;
5using libsecondlife; 6using libsecondlife;
@@ -7,14 +8,14 @@ using libsecondlife;
7namespace OpenSim.Data.NHibernate 8namespace OpenSim.Data.NHibernate
8{ 9{
9 [Serializable] 10 [Serializable]
10 public class LLUUIDString : IUserType 11 public class LLUUIDUserType: IUserType
11 { 12 {
12 public object Assemble(object cached, object owner) 13 public object Assemble(object cached, object owner)
13 { 14 {
14 return cached; 15 return cached;
15 } 16 }
16 17
17 bool IUserType.Equals(object uuid1, object uuid2) 18 public bool IUserType.Equals(object uuid1, object uuid2)
18 { 19 {
19 return uuid1.Equals(uuid2); 20 return uuid1.Equals(uuid2);
20 } 21 }
@@ -55,9 +56,8 @@ namespace OpenSim.Data.NHibernate
55 56
56 public void NullSafeSet(System.Data.IDbCommand cmd, object obj, int index) 57 public void NullSafeSet(System.Data.IDbCommand cmd, object obj, int index)
57 { 58 {
58 LLUUID UUID = (LLUUID)obj; 59 LLUUID uuid = (LLUUID)obj;
59 ((IDataParameter)cmd.Parameters[index]).Value = UUID.ToString(); 60 ((IDataParameter)cmd.Parameters[index]).Value = uuid.ToString();
60 System.Console.WriteLine("Setting UUID {0}", UUID.ToString());
61 } 61 }
62 62
63 public object Replace(object original, object target, object owner) 63 public object Replace(object original, object target, object owner)
@@ -72,7 +72,7 @@ namespace OpenSim.Data.NHibernate
72 72
73 public SqlType[] SqlTypes 73 public SqlType[] SqlTypes
74 { 74 {
75 get { return new SqlType [] { SqlTypeFactory.GetString(32) }; } 75 get { return new SqlType [] { NHibernateUtil.String.SqlType }; }
76 } 76 }
77 } 77 }
78} 78}