Grails アプリケーションを構築していますが、MongoDB GORM プラグインから Hibernate プラグインに切り替えると、統合テストで奇妙な結果が得られます。
1 対多の関係にある Client クラスと Workspace クラスがあります。
class Client{
//fields...
static hasMany = [workspaces: Workspace]
}
class Workspace{
//fields...
static belongsTo = [client: Client]
}
次に、次の Spock 統合テストを実行すると:
def "Deleting a client removes its related workspaces" () {
given: "An existing client and workspace"
Client client = new Client().save(failOnError: true)
Workspace workspace = new Workspace().save(failOnError: true)
client.addToWorkspaces(workspace)
when: "Deleting the client"
def foundClient = Client.get(client.id)
foundClient.delete(flush: true)
assert !Client.exists(client.id)
then: "Related workspace is also deleted"
!Workspace.exists(workspace.id)
}
このテストは、Hibernate ではパスしますが、MongoDB の実行ではパスしません。MongoDB はワークスペースを削除せず、テストの最後の行は次のように失敗します。
Workspace.count() == 0
| |
1 false
MongoDB が GORM を使用して Hibernate と同じカスケード操作を実行する方法はありますか?
ご協力いただきありがとうございます