You have create a JIRA ticket and we have to create the mapping for Order, the lines to store a Customer with orders, then we have to implement the test. After do it we can spent time to fix the issue.
On Thu, Apr 7, 2011 at 1:41 PM, Ricardo Peres <[email protected]> wrote: > Yes, Fabio, you are right: setting the class to lazy fixed the > problem. > I created an issue in JIRA: Lazy Properties Causing An Exception If > Containing Class Is Set To Not Lazy, NH-2632. > > RP > > > On Apr 7, 5:30 pm, Fabio Maulo <[email protected]> wrote: > > Perhaps is because the entity itself is lazy-false. > > We have no test for this case. > > Please file a new JIRA ticket. > > > > > > > > > > > > > > > > > > > > On Thu, Apr 7, 2011 at 1:28 PM, Fabio Maulo <[email protected]> > wrote: > > > Please use our JIRA and attach the test case. > > > Thanks. > > > > > On Thu, Apr 7, 2011 at 1:24 PM, Ricardo Peres <[email protected]> > wrote: > > > > >> Hello again! > > > > >> Here's the code: > > > > >> ModelMapper mapper = new ModelMapper(); > > > > >> mapper.Class<Customer>(ca => > > >> { > > >> ca.Table("`CUSTOMER`"); > > >> ca.Lazy(false); > > >> ca.Id(x => x.Id, map => > > >> { > > >> map.Column("`ID`"); > > >> map.Generator(new HiLoWithSuffixIdGenerator(), g => > > >> g.Params(new > > >> { max_lo = "1000" })); > > >> }); > > >> ca.NaturalId(x => x.Property(c => c.Name)); > > >> ca.Property(x => x.Name, p => > > >> { > > >> p.NotNullable(true); > > >> p.Column("`NAME`"); > > >> }); > > >> ca.Property(x => x.Address, p => > > >> { > > >> p.NotNullable(false); > > >> p.Lazy(true); > > >> p.Column("`ADDRESS`"); > > >> }); > > >> ca.Set(c => c.Orders, c => > > >> { > > >> c.Key(x => x.Column("`CUSTOMERID`")); > > >> c.Lazy(CollectionLazy.Lazy); > > >> c.Inverse(true); > > >> c.Cascade(Cascade.All); > > >> }, c => c.OneToMany()); > > >> }); > > > > >> public class Customer > > >> { > > >> public virtual Int64 Id > > >> { > > >> get; > > >> private set; > > >> } > > > > >> public virtual String Name > > >> { > > >> get; > > >> set; > > >> } > > > > >> public virtual String Address > > >> { > > >> get; > > >> set; > > >> } > > > > >> public virtual IEnumerable<Order> Orders > > >> { > > >> get; > > >> private set; > > >> } > > >> } > > > > >> Class Order is mapped similarly, everything is working fine. Now, if I > > >> do a: > > > > >> Customer cust = session.Get<Customer>(1000L); > > > > >> I get a class cast exception saying that it cannot convert an Object > > >> into a String in Customer. If I comment out the p.Lazy(true) line on > > >> the Address property mapping, it works fine. BTW, I also tried it with > > >> HBM.XML, and I got the same exception. > > > > >> Thanks, > > > > >> RP > > > > >> On Apr 7, 5:16 pm, Fabio Maulo <[email protected]> wrote: > > >> > I have checked our tests and we have a specific test using > > >> > string NHibernate.Test.LazyProperty and it work. > > >> > Which is your problem ? > > > > >> > On Thu, Apr 7, 2011 at 1:03 PM, Fabio Maulo <[email protected]> > > >> wrote: > > >> > > No one of both > > > > >> > > On Thu, Apr 7, 2011 at 11:00 AM, Ricardo Peres <[email protected] > > > > >> wrote: > > > > >> > >> Hi, > > > > >> > >> It seems that NH 3.2 (trunk version) no longer supports lazy > > >> > >> properties of String type. At least, I'm having trouble with it: > when > > >> > >> querying, I get an exception complaining about the property type. > > >> > >> Is this a known problem, or a new decision? > > > > >> > >> Thanks! > > > > >> > >> RP > > > > >> > > -- > > >> > > Fabio Maulo > > > > >> > -- > > >> > Fabio Maulo > > > > > -- > > > Fabio Maulo > > > > -- > > Fabio Maulo > -- Fabio Maulo
