車両のリストを含むドメイン (所有者) があります。サービス クラス メソッドで、所有者の車両リストからいくつかの車両を追加し、いくつかの車両を削除しようとしています。
public Owner edit(Long ownerId) {
Owner owner
Owner.withTransaction { status ->
if (ownerId) {
def vehicle
owner = Owner.get(ownerId)
if (owner) {
// add vehicles
addVechicleList.each {
vehicle = Vehicle.get(new Long(it))
if (vehicle) {
owner.addToVehicleList(vehicle)
}
}
// remove vehicles
removeVehicleList.each {
vehicle = Vehicle.get(new Long(it))
if (vehicle) {
owner.removeFromVehicleList(vehicle)
}
}
owner?.save(flush: true)
}
} // end transaction
Owner newOwner = Owner.get(ownerId)
return newOwner // this has the newly added vehicle but not the removed vehicle.
}
ドメイン クラス
Owner.groovy
class Owner {
String ownerName
Date dateCreated
Date lastUpdated
static hasMany = [vehicleList: Vehicle]
static constraints = {
// some constraints
}
}
Vehicle.groovy
class Vehicle {
String vehicleName
Owner owner
Date dateCreated
Date lastUpdated
static belongsTo = Owner
static hasMany = [owners: Owner]
static constraints = {
// some constraints
}
}
私はデータを保存しましたflush
。flush
また、削除されたオブジェクトが含まれています。しかし、UI から新しいリクエストを更新または配置すると、所有者の詳細を取得するだけで、正しい値が取得されます。データを保存した後、ブレークポイントを配置してDBを表示しようとしました。データベースは更新されましたが、get() メソッドは正しい値を取得しませんでした。私は grails 2.2 を使用しています。コードに何か不足していますか?? なぜ更新された値を取得していないのですか??