Problem appears when I executing save, in particular onfirst save the
collection is not inserted in 2nd level cache.
After first get he cache works as expected.
using (var session = sessionFactory.OpenSession())
{
using (var tx = session.BeginTransaction())
{
// item
Item item = new Item();
item.Id = item_guid;
item.ItemDescription = "ItemNote";
// bid1
Bid bid1 = new Bid();
bid1.Id = bid1_guid;
bid1.Description = "Bid1Description";
bid1.Item = item;
// bid2
Bid bid2 = new Bid();
bid2.Id = bid2_guid;
bid2.Description = "Bid2Description";
bid2.Item = item;
session.Save(item);
tx.Commit(); */* 3 INSERT QUERY ON DB */*
}
using (var tx = session.BeginTransaction())
{
session.Get<Item>(item_guid); * /* NO QUERY ON DB*/*
tx.Commit();
}
}
using (var session = sessionFactory.OpenSession())
{
using (var tx = session.BeginTransaction())
{
session.Get<Item>(item_guid); */* 1 SELECT QUERY ON DB
NOT EXPECTED*/*
}
}
using (var session = sessionFactory.OpenSession())
{
using (var tx = session.BeginTransaction())
{
session.Get<Item>(item_guid); * /* NO QUERY ON DB*/*
}
}
Thank you
Maurizio
Il giorno martedì 27 ottobre 2015 17:41:46 UTC+1, Mau80 ha scritto:
>
> Hi to all,
>
> I am having a problem with NHibernate and 2nd Level Cache trying to
> retrieve collections.
>
> In particular I get a cache miss with collection property (no items
> contained in collection). Eg:
>
> Item have a bag of Bid
>
> In my Item entity, I've following property:
>
> public IList<Bid> Bids { get; set; }
>
> I get cache miss on following (note Model.Core.Item.Bids)
>
> *Model.Core.Item.Bids*#60b8b2d6-4e60-489e-bd08-dce224941b6f
>
> This is my version of NHibernate:
>
> NHibernate 4.0.4 GA
> NHibernate.Caches.SysCache.dll 4.0.0.4000
>
> Following my mapping
>
> <?xml version="1.0" encoding="utf-8" ?>
>> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
>> assembly="Model.Core"
>> namespace="Model.Core">
>> <class name="*Item*" lazy="false">
>> <cache include="all" usage="read-write"/>
>> <id name="Id" type="Guid"
>> unsaved-value="00000000-0000-0000-0000-000000000000">
>> <generator class="assigned" />
>> </id>
>> <property name="ItemDescription" />
>> <bag name="Bids" lazy="false" inverse="true" cascade="all">
>> <cache usage="read-write"></cache>
>> <key column="idItem"></key>
>> <one-to-many class="Bid" />
>> </bag>
>> </class>
>> </hibernate-mapping>
>
>
> <?xml version="1.0" encoding="utf-8" ?>
>> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
>> assembly="Model.Core"
>> namespace="Model.Core">
>> <class name="*Bid*" lazy="false">
>> <cache usage="read-only"/>
>> <id name="Id" type="Guid">
>> <generator class="assigned"/>
>> </id>
>> <property name="Description" />
>> <many-to-one name="Item" column="idItem" class="Item" lazy ="false"/>
>> <set name="BidDetails" lazy="false" fetch="join" inverse="true"
>> access="property">
>> <cache usage="read-write"/>
>> <key column="idBid"></key>
>> <one-to-many class="BidDetail" />
>> </set>
>> </class>
>> </hibernate-mapping>
>
>
>
> I can provide more info or code sample.
>
> Thank you very much
> Maurizio
>
>
>
--
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/nhusers.
For more options, visit https://groups.google.com/d/optout.