| 屬性名稱 |
用途 |
hibernate.dialect |
NHibernate方言(Dialect)的類名 - 可以讓NHibernate使用某些特定的資料庫平台的特性 例如: full.classname.of.Dialect(如果方言建立在NHibernate中), 或者full.classname.of.Dialect, assembly (如果使用一個自訂的方言的實現,它不屬於NHibernate)。 |
hibernate.default_schema |
在產生的SQL中,scheml/tablespace的全限定名. 例如: SCHEMA_NAME |
hibernate.prepare_sql |
是否準備sql語句 例如: true | false |
hibernate.session_factory_name |
SessionFactory被建立後將自動綁定這個名稱.例如: some.name |
hibernate.use_outer_join |
允許使用外串連抓取。 例如:true | false |
hibernate.cache.provider_class |
指定一個自訂的CacheProvider緩衝提供者的類名例如: full.classname.of.CacheProvider(如果ICacheProvider建立在NHibernate中), 或full.classname.of.CacheProvider, assembly(如果使用一個自訂的ICacheProvider,它不屬於NHibernate)。 |
hibernate.query.substitutions |
把NHibernate查詢中的一些短語替換為SQL短語(比如說短語可能是函數或者字元)。 例如: hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC |
SQL 方言 (SQL Dialects)
你總是可以為你的資料庫設定一個hibernate.dialect方言,它是NHibernate.Dialect.Dialect 的一個子類。如果你不需要使用基於native或者sequence的主鍵自動產生演算法,或者悲觀鎖定(使用ISession.Lock() 或者 IQuery.SetLockMode())的話,方言就可以不必指定。然而,假若你指定了一個方言,Hibernate會為上面列出的一些屬性使用特殊預設值,省得你手工指定它們。
表2.3 NHibernate SQL 方言 (hibernate.dialect)
| RDBMS |
方言 |
| DB2 |
NHibernate.Dialect.DB2Dialect |
| PostgreSQL |
NHibernate.Dialect.PostgreSQLDialect |
| MySQL |
NHibernate.Dialect.MySQLDialect |
| Oracle (any version) |
NHibernate.Dialect.OracleDialect |
| Oracle 9/10g |
NHibernate.Dialect.Oracle9Dialect |
| Sybase |
NHibernate.Dialect.SybaseDialect |
| Microsoft SQL Server 2000 |
NHibernate.Dialect.MsSql2000Dialect |
| Microsoft SQL Server 7 |
NHibernate.Dialect.MsSql7Dialect |
| Firebird |
NHibernate.Dialect.FirebirdDialect |