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) 
    );

我的问题是如何映射个人表?我的问题是个人没有外键,所以我不知道如何映射个人。我需要从该表中获取 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>

如果我使用多对一关系,网站就会崩溃。

4

1 回答 1

1

你写:

网站崩溃

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

无论如何,从映射中我可以看到一件事可能是错误的:在<many-to-one />您需要指出您正在映射的属性的类(“个人”)中,而不是包含类(“预订”)。尝试以下方式:

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

主要区别在于class属性。我认为您甚至可以完全省略该属性,并让 NHibernate 从实体的属性类型中推断出它。

有关更多信息,请参阅多对一文档。

于 2012-08-07T09:01:56.077 回答