NHibernate マッピングの書き方
2009/11/25 17:04Update
NHibernate のマッピング設定ファイル(XML、クラス、SQL)の書き方について。
マッピング設定ファイル
MyTable.hbm.xml<?xml version="1.0"?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="NHibernate.Entity" assembly="TestNHibernate"> <class name="MyTable" table="MY_TABLE" lazy="false" > <!-- ID --> <id name="Id" column="ID" length="32" > <generator class="uuid.hex" /> </id> <!-- stringプロパティ --> <property name="Name" type="string" column="NAME" not-null="true" length="15" /> <!-- intプロパティ --> <property name="Price" type="int" column="PRICE" not-null="false" length="4" /> <!-- stringプロパティ --> <property name="Flag" type="string" column="FLAG" not-null="true" length="1" /> <!-- timestampプロパティ --> <property name="UpdateDatetime" type="timestamp" column="UPDATE_DATETIME" not-null="true" length="3" /> </class> </hibernate-mapping>
解説:
<hibernate-mapping>
①namespace:クラスのパッケージ相当
②assembly:アセンブリ名(DLL名)
<class>
①name:クラス名
②table:テーブル名
<property>
①name:クラス・フィールド名
②type:対応テーブル・フィールドの型
③column:対応テーブル・フィールド名
④not-null:NULL不可/可
⑤length:フィールドのレングス
対応テーブル
定義例:
CREATE TABLE MY_TABLE (
ID VARCHAR(32) PRIMARY KEY NOT NULL,
NAME VARCHAR(15) NOT NULL,
PRICE INT(4),
FLAG CHAR(1) NOT NULL,
UPDATE_DATETIME TIMESTAMP NOT NULL
);
ID VARCHAR(32) PRIMARY KEY NOT NULL,
NAME VARCHAR(15) NOT NULL,
PRICE INT(4),
FLAG CHAR(1) NOT NULL,
UPDATE_DATETIME TIMESTAMP NOT NULL
);
対応クラス
定義例:
MyTable.csusing System;
namespace NHibernate.Entity {
[Serializable]
public class MyTable
{
//ID(プライマリ・キー)
private string id;
public string Id
{
get
{
return id;
}
set
{
this.id = value;
}
}
//名前
private string name;
public string Name
{
get
{
return name;
}
set
{
this.name = value;
}
}
//価格
private Int32 price;
public Int32 Price
{
get
{
return price;
}
set
{
this.price = value;
}
}
//フラッグ
private string flag;
public string Flag
{
get
{
return flag;
}
set
{
this.flag = value;
}
}
//タイムスタンプ
private DateTime updateDatetime;
public DateTime UpdateDatetime
{
get
{
return updateDatetime;
}
set
{
this.updateDatetime = value;
}
}
}
}
.
Sponsored Link
- Relative Articles
- NHibernate のインストール&導入 - (2009/11/25 13:03)
- 初めてのNHibernate入門 サンプル - (2009/11/25 17:19)
- The IDbCommand and IDbConnection ... MySql.Data could not be found エラーについて - (2009/12/10 13:31)
- NHibernate データベースのDialect名一覧 - (2009/10/14 13:57)
- NHibernateを利用しやすくなるヘルパークラスの実装 - NHibernateHelper例 - (2009/11/25 16:00)
- NHibernate の設定ファイルhibernate.cfg.xmlの記述例 - (2009/11/25 16:18)
- NHibernate+C# Genericで汎用的なDAO を作成 - (2009/11/26 11:51)