Hi,

I didnt solve my problem, I abandoned this approach :(
  ----- Original Message ----- 
  From: Yusuf Nar 
  To: [email protected] 
  Sent: Thursday, July 30, 2009 7:00 AM
  Subject: [nhusers] Re: HQL Join Problem


  I realized the source of problem. There is no Oracle9Dialect, it is 
Oracle9iDialect..


  2009/7/30 Mitjast <[email protected]>


    We had the similar problem with N+1 select. In our case it created
    separate select for all not found associations (many-to-one). We used
    Guid as a key so it was always 0000-......
    We solve this problem with a simple "null" in DB. Apparently
    Nhibernate checks all of not found association again with separate
    select if the value is diferent than null. even thou it was explicitly
    sad not-found = "Ignore".....

    hope it helps you.

    On Jul 29, 9:05 am, Mitjast <[email protected]> wrote:
    > Did You solve this problem?
    >
    > On 10 jul., 17:59, "Cesar Sanz" <[email protected]> wrote:
    >
    > > Sure...
    >
    > > Operator
    >
    > > <?xml version="1.0" encoding="utf-16"?>
    > > <hibernate-mapping  auto-import="true" default-lazy="false"
    > > xmlns:xsd="http://www.w3.org/2001/XMLSchema";
    > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
    > > xmlns="urn:nhibernate-mapping-2.2">
    > >   <class name="Sms.Data.Domain.Operator, Sms.Data.Domain" 
table="operators"
    > > schema="dbo" lazy="true">
    > >     <id name="Id" access="property" column="Id" type="Int32"
    > > unsaved-value="0">
    > >       <generator class="native"></generator>
    > >     </id>
    > >     <property name="Name" access="property" type="String">
    > >       <column name="Name"/>
    > >     </property>
    > >     <bag name="Clients" access="property" table="clients" lazy="false"
    > > inverse="true" cascade="all-delete-orphan">
    > >       <key column="Operator" />
    > >       <one-to-manyclass="Sms.Data.Domain.Client, Sms.Data.Domain" />
    > >     </bag>
    > >   </class>
    > > </hibernate-mapping>
    >
    > > Client
    >
    > > <?xml version="1.0" encoding="utf-16"?>
    > > <hibernate-mapping  auto-import="true" default-lazy="false"
    > > xmlns:xsd="http://www.w3.org/2001/XMLSchema";
    > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
    > > xmlns="urn:nhibernate-mapping-2.2">
    > >   <class name="Sms.Data.Domain.Client, Sms.Data.Domain" table="clients"
    > > schema="dbo">
    > >     <id name="ClientId" access="property" column="Id" type="Int32"
    > > unsaved-value="0">
    > >       <generator class="native"></generator>
    > >     </id>
    > >     <property name="AreaCode" access="property" type="String">
    > >       <column name="AreaCode"/>
    > >     </property>
    > >     <property name="Cif" access="property" type="String">
    > >       <column name="Cif"/>
    > >     </property>
    > >     <property name="Identification" access="property" type="String">
    > >       <column name="Identification"/>
    > >     </property>
    > >     <property name="FirstName" access="property" type="String">
    > >       <column name="FirstName"/>
    > >     </property>
    > >     <property name="LastName" access="property" type="String">
    > >       <column name="LastName"/>
    > >     </property>
    > >     <property name="LastName2" access="property" type="String">
    > >       <column name="LastName2"/>
    > >     </property>
    > >     <property name="Email" access="property" type="String">
    > >       <column name="Email"/>
    > >     </property>
    > >     <property name="Notify" access="property" type="Boolean">
    > >       <column name="Notify"/>
    > >     </property>
    > >     <property name="Status" access="property">
    > >       <column name="Status"/>
    > >     </property>
    > >     <property name="ModifiedBy" access="property" type="String">
    > >       <column name="ModifiedBy"/>
    > >     </property>
    > >     <property name="CreatedAt" access="property" type="DateTime">
    > >       <column name="Created"/>
    > >     </property>
    > >     <property name="ModifiedAt" access="property" type="DateTime"
    > > insert="false">
    > >       <column name="Modified"/>
    > >     </property>
    > >     <property name="CellPhone" access="property" type="String">
    > >       <column name="CellPhone"/>
    > >     </property>
    > >     <many-to-onename="Operator" access="property"
    > > class="Sms.Data.Domain.Operator, Sms.Data.Domain" 
column="Operator"fetch="join" />
    > >     <bag name="Products" access="property" table="products" lazy="true"
    > > inverse="true" cascade="all-delete-orphan">
    > >       <key column="ClientId" />
    > >       <one-to-manyclass="Sms.Data.Domain.Product, Sms.Data.Domain" />
    > >     </bag>
    > >   </class>
    > > </hibernate-mapping>
    >
    > > ----- Original Message -----
    > > From: "Eyston" <[email protected]>
    > > To: "nhusers" <[email protected]>
    > > Sent: Friday, July 10, 2009 9:35 AM
    > > Subject: [nhusers] Re: HQL Join Problem
    >
    > > Can you show mappings?
    >
    > > On Jul 10, 11:12 am, spiralni <[email protected]> wrote:
    > > > Hi..
    >
    > > > I'd like to perform a join between two entities..
    >
    > > > [Operator] hasmany[Client]
    >
    > > > I can do this with this SQL sentence
    >
    > > >selectc.*, o.name from clients c join operators o on c.operator =
    > > > o.id
    >
    > > > I would like to do this same query using HQL, for this I use this HQL
    > > > query
    >
    > > > "from Client c joinfetchc.Operator where c.Status = :status and
    > > > c.Cif in (:cifs)"
    >
    > > > The HQL query results in
    >
    > > >select(fields names goes here)
    > > > from dbo.clients client0_ inner join dbo.operators operator1_ on
    > > > client0_.Operator = operator1_.Id
    > > > where (client0_.Status = 1) and (client0_.Cif in (12345670 ,
    > > > 12345678 ))
    >
    > > > which is ok, but also execute a new query for every operator id that I
    > > > have (in my case I have 2 operators)
    >
    > > >SELECT(fields names goes here)
    > > > FROM dbo.clients clients0_
    > > > WHERE clients0_.Operator = 2
    >
    > > >SELECT(fields names goes here)
    > > > FROM dbo.clients clients0_
    > > > WHERE clients0_.Operator = 1
    >
    > > > Which is not desirable... Why is this happening..? I just want to
    > > > execute the first query..
    >
    > > > Hope you can help me..
    >
    > > > Thanx




  

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to