I think this is by design, to ensure that the cache is in sync with the
actual data in the database.

/G

2015-11-26 22:17 GMT+01:00 Mau80 <[email protected]>:

> I've inserted following issue:
>
> https://nhibernate.jira.com/browse/NH-3837
>
>
> Il giorno mercoledì 28 ottobre 2015 16:58:45 UTC+1, Mau80 ha scritto:
>>
>> The problem appears only when I perform insert. Future get works as
>> expected.
>> I'd like to avoid to fetch data from db after have inserted.
>>
>>  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.
>

-- 
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.

Reply via email to