ものを見守しなければならないのかColdFusion9CF-ORM
-
21-09-2019 - |
質問
何にもまれColdFusion9CF-ORM(Hibernateる"ことだ。
解決
entity
init()
方法はないので必要な引数(s)、EntityNew()
その他のCF-ORMの行動はます。使用する場合がありま工場を主体を確実に必要な引数があります。ORMReload()
とormsettings.dbcreate = "drop create"
な落としてすべてのテーブルです。 CF9累計温の修正1 向ことを少しで入手できるかもしれませんが、したいのテーブルのDBます。type="date"
(デフォルトの利用ormtype="date"
まさおだけ屋日がない。したい場合は保持時間など、利用ormtype="timestamp"
type="string"
デフォルトvarchar(255)
type="numeric"
デフォルトfloat
, ないint
.利用ormtype="int"が必要です。の場合
fieldtype="id"
および発電機が一発生装置、ormtypeデフォルトint
.type="string" length="10"
の利用varchar(10)
, ないchar(10)
ormtype="char" length="10"
の利用char(1)
ます。使用sqltype="char(10)"
合する必要があります。type="boolean"
使用tinyint
デフォルトでは、利用sqltype="bit"
場合に必要があります。すべき使用
inverse=true
に双方向の関係で、通常は"多"側です。い ない 使用
inverse="true"
に"一方向の関係!の関係が続いたのですが---。ご利用の場合MS-SQLできない場合もありますので以上1団体との一対一の財産はNullに設定がNullの場合と考えられている独自の価値のインデックス.しなければならないカラムはnullです。(ご利用linktable)
EntityLoad("entity", 1, true)
作品がEntityLoadByPK("entity", 1)
クリーン!EntityLoad()
,EntityLoadByPK()
, は、ORMExecuteQuery
とunique=true
, 、null
合体が見つかりません。使用isNull()
チェックをご利用の際には、返される値です。ORMExecuteQuery
に復していない場合は空の配列者が見つからデフォルトです。も忘れずに使用
singularname
財産"を多く"/"多対多"のためのすぐに見を生成機能などaddDog(Dog dog)
vsaddDogs(Dog dogs)
.)<cfdump>
までの負荷テ負荷物件です。あるいてみるのも良いでしょう<cfdump var="#entityToQuery([entity])#">
やセットトップ=1をダンプす。団体保管セッション範囲が断線すると、Hibernateのセッションの範囲は、lazy負荷物はロードされます。回復にはhibernateのセッションの範囲、利用
entityLoadByExample()
またはentitySave(entity)
.cascade="all-delete-orphan"
通常より感のための"多"または"多対多"。Hibernateセットがnullの削除となるための列nullable.試験場合がご希望活動しています。セット
required="true"
きnotnull="true"
, より読みやその他のCFCとCFCExplorerEntityNew('Y')
ややより効率的new com.X.Y
ば、企業は続き後には、Adobeのエンジニアだ。との関係を継承者が休憩時により固定化されていなHibernateのバグを使用
linktable
回避策として.structKeyColumn
できない、PKを対象団体をいう。双方向特定多数が利用できない構造体
を追加する場合に新たな事業体へのstruct、
structKeyColumn
無視のCFが続き、親会社組織となる。まアクセスの多/多-多くの配列や構造体を直接確認し、対応する配列構造体の存在使用してください。生addX()/hasX()/removeX()を安全に使用できます。
時
postInsert()
, によって、企業はhibernateのセッションされなければなりませんので、設定の物件でpostInsertすことができますを無視し、又はセッションが閉じら例外がスローされます。後の者が読み込まれる
entityLoad()
またはHQLからのDBの変化を自動的に続いた場合でもEntitySave()
呼び出されることはありません.取引CF-ORMするように実装では、新しいセッションありの場合で行われます。
内のイベント(プリロード()/postInsert())割に変数が投げJava exceptionいます。利用JavaCast()のバグ。
更新
- CF9.0になります。1+:使用
<cfquery dbtype="hql">
, やんcfqueryparam
, と、デバッグ出力を実際にフォームを目指しています。牲値です。
他のヒント
追加国際勧告
- Off ormsettings.flushAtRequestEnd=falseを持たないので、自動フラッシュ末ます。代わりに使用取引(CF9.01,cftransactionフラッシュセッションのためのお取引を確認の上、お申し込みください頃にすべて書き取引entitySave()まる場合、編集、保持者).
- 防SQLインジェクションを用い牲パラメータHQL-名前のない'?'または名前は':'の表記は、保証タイプの結合によるORMの分野の理由の如何を問わず様CFQUERYPARAMい).防SQLインジェクション!
- CF9.0になります。1できるCFQUERY dbtype="hql"書き出HQLインライン.利用CFQUERYPARAM bind paramsインライン(名前のない?表記HQL).
- 利用LEFT OUTER JOIN取HQLに意欲を取得す。
- オーバーライドの追加と削除機能をフロンとの双方向の関係を保双方の設定にかかる料金等についてです。
- 番ormsettings.logsql=trueビュー由来のSQLのです。調整log4j Hibernateの設定の更なるユーログの設定Hibernate.
- 参加Googleグループcf-orm-dev.明るいにあります。
SQL Server 2005のを使用すると、その後、プロファイラーを起動して、スルーくるクエリーを見ることができます。
Hibernateは新しい準備された文を毎回作成するために強制されますオフので、接続を維持しています。
プリペアドステートメントを読むこと厳しいものになることができますが、少なくとも、あなたが生成されている生のクエリを見ることができます。
あなたが接続を維持する場合は、これらのプリペアドステートメントは、一度作成され、あなただけの
のようなものを参照してくださいsp_execute 15 'someparam'
これは、RANのsp_prepexec 15はどこから来るのであるRANであった前に。
EntityReloadにcfdumpのような遅延ロードを無視するように見える。
私は、DBのいずれかの不履行列をつかむためにEntitySave後にそれを使用しています。私は、クエリの多くはスルー来SQLプロファイラ(SQL Serverのトレースツール)で見ます。
EntityLoadByPKに変更している場合などには、オブジェクトをロードすると私のための主要な問題を引き起こす可能性があり、すべての余分な関係クエリは表示されません。