0
TABLE BOOKING (
    BOOK_ID 
    PERSONAL_ID        
    ORGINIZER      
    TITLE 
    PRIMARY KEY (BOOK_ID) 
    FOREIGN KEY (PERSONAL_ID) 
); 

TABLE PERSONAL 
    (
     ID 
     NAME 
     SURNAME 
     EMAIL   
     PRIMARY KEY (ID) 
    ); 

我的问题是如何映射表格PERSONAL?我的问题是PERSONAL没有一个外键,所以我不知道如何映射到个人。我需要从该表中获取NAME,SURNAME和EMAIL。如何在没有外键的表格上映射

希望有人能帮忙。

我的映射看起来像这样至今:

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> 

    <class name="Depp.Domain.Booking, Depp.Core" > 
    <id name="ID" unsaved-value="0" column="ID"> 
     <generator class="native"> 
     <!--<param name="sequence">GLOBALSEQUENCE</param>--> 
     </generator> 
    </id> 
    <property name="Title" ></property> 
    <property name="TitleEnabled" type="yes_no"> 
     <column name="THEMA_ENABLED"/> 
    </property> 
    <property name="ORGANIZER" column="PERSONAL_ID" not-null="true" ></property> 

    <many-to-one name="Personal" class="Book.Domain.Booking, Book.Core" column="Personal_ID" 
      not-null="true" /> 

    </class> 


    <class name="Book.Domain.Personal, Book.Core"> 
    <id name="id" column="ID"> 
     <generator class="native"/> 
    </id> 

    <component name="Booker" class="Book.Domain.Person, Book.Core"> 
     <property name="Name" column="NN" /> 
     <property name="Surname" column="VN"/> 
     <property name="Email" column="EMAIL" /> 
     <property name="Phone" column="TEL" /> 
    </component> 
    </class> 

</hibernate-mapping> 

如果我用多对一的关系的网站崩溃。

+0

我更新了我的文章 – 2012-08-07 07:50:22

回答

1

你写:

网站崩溃

这不是一个相当详细的错误报告;-)。如果您提供更多细节,它可以帮助我们帮助您。

在任何情况下,从映射中我都可以看到一件可能是错误的事情:在<many-to-one />中,您需要指明要映射的属性的类(“个人”),而不是包含的类(“Booking” )。试试沿着这些线路:

<many-to-one name="Personal" 
    class="Book.Domain.Personal, Book.Core" 
    column="Personal_ID" 
    not-null="true" /> 

的主要区别是在class属性。我认为你甚至可以完全忽略这个属性,并让NHibernate从实体的属性类型中推断出它。

欲了解更多信息,请参阅many-to-one文档。