2017-02-23 9 views
0

に失敗し、私は、ColdFusionに新たなんだとORMをしようとしています(Hibernateは、私はまったく知らないこれ、と信じて)同時のColdFusion ORMデータベース要求が

2を呼び出そうとしたとき、私はこの問題に出くわしましたCFページは急速に連続して表示されます。 2つのページ上のコードは、超簡単です:

getAppointments.cfm:

<cfscript> 
    ORMReload(); 
    appointments = serializeJSON(EntityLoad("Appointment")); 
</cfscript> 

<cfoutput>#appointments#</cfoutput> 

getRooms.cfm:

<cfscript> 
    ORMReload(); 
    rooms = serializeJSON(EntityLoad("Room")); 
</cfscript> 

<cfoutput>#rooms#</cfoutput> 

私はそれらを呼び出すために使用するコードはjQueryの/ AJAXです:

var appointments; 
var rooms; 

$(document).ready(function() { 
    loadAppointments(); 
    loadRooms(); 
}); 

function loadAppointments() { 
    $.ajax({ 
     type: 'get', 
     url: 'getAppointments.cfm' 
    }).done(function (response) { 
     appointments = JSON.parse(response); 
    }).fail(function (response) { 
     var message = response.status + " - " + response.statusText; 
     alert("Failed to load appointments: " + message); 
    }); 
} 

function loadRooms() { 
    $.ajax({ 
     type: 'get', 
     url: 'getRooms.cfm' 
    }).done(function (jsonString) { 
     rooms = JSON.parse(jsonString); 
    }).fail(function (response) { 
     var message = response.status + " - " + response.statusText; 
     alert("Failed to load rooms: " + message); 
    }) 
} 

loadRooms()が呼び出される前にブレークポイントを設定して実行を一時停止すると、すべて正常です。私は、コードをまっすぐに実行する場合、私は500エラーが発生するので、私はAJAXの呼び出しの非同期性の性質のためにORMと並行処理の問題のいくつかの並べ替えを実行しているのはかなり明らかです。

私はIIS(localhost)上で、SQL Serverデータベースを使用してCFを実行しています。

私が見たCFのチュートリアルでは、このようなシナリオは扱いません。私は、JS関数の中で実行を延期することができることは知っていますが、それは基本的な問題を隠すだけです。

誰かが私を解決に向けることができますか? CFで利用可能なC#ロックに類似したものはありますか?

答えて

1

あなたはすべてのエンティティをリロードする原因になっている各呼び出しでORMReload()を適用している、明確なORMキャッシュなど

(ORMReloadについてお読みください)あなたは、エンティティに変更を加えるたび、それは一度だけ使用する必要がありますCFCs。

+0

EntityLoad関数にはname + criteria/idが必要です。詳しくはhttps://cfdocs.org/entityloadを参照してください。 – Sana

+0

ありがとう、ORMReloadを取り出して問題を解決しました。私が調べたチュートリアルには、ORMを使用するすべてのページの上部にそのチュートリアルが含まれているため、必要だったと思いました。ですから、ページがCFCの作成、更新、または削除を行うときにのみそれを含める必要がありますが、読み込みには必要ありません。 –

関連する問題