最近GORMについては、初めて使用しているので、オブジェクト間の関係や保存時に問題が発生するため、多くのことを尋ねています。 だから、これは一つのクラスである:GORMはhasManyエンティティを保存していません
class TesterUser {
@Id
private String id
private String userId
static belongsTo = Dashboard
static constraints = {
userId nullable: true
}
static mapping = {
id column: 'id', generator: 'assigned'
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
そして、これが他のクラスである:
クラスTestingClass {
@Id
private String id
private Date created
private Date modified
private String title
private ClassName className
static hasMany = [testUsers : TesterUser, sheets : Sheet]
static belongsTo = ClassName
static constraints = {
modified nullable: true
title nullable: true
className nullable: true
}
static mapping = {
sheets column:'testingClassId',joinTable: false
testUsers column:'testingClassId',joinTable: false
id column: 'id', generator: 'assigned'
title column: "title", length: 90000
}
public Date getCreated() {
return created;
}
public void setCreated(Date created) {
this.created = created;
}
public Date getModified() {
return modified;
}
public void setModified(Date modified) {
this.modified = modified;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public DavUser getClassName() {
return className;
}
public void setClassName(ClassName className) {
this.className = className;
}
public Date getDeleted() {
return deleted;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
私はすでにDB内のオブジェクトを保存したが、今は設定したいですそれらの間の関係、私が電話して保存したときには機能していません:
TesterUser testU = TesterUser.findById(uId)
TestingClass testC = TestingClass.findById(cId)
if(testU != null && testC != null){
amountOfRelations++
testC.addToDashboardUsers(testU)
if(!dtestC.save(flush:true, failOnError: true)){
amountOfUnsaved++
}
else{
amountOfsaved++
}
なんらかの理由で、私はエラーを受け取りません。だけでなく、私はクエリが私のDBに行くことがわかりますが、何も起こりません。更新やエラーはありません。 なぜ動作しないのかわかりません。
前のDBをフラッシュして、アプリケーションを再起動する必要があります。 –
「TestingClass.dashboardUsers」はどこですか? 'TestingClass'には、' testUsers'と 'sheets'という2つの* many * associationsがあります。したがって、あなたは 'testC.addToTestUsers(testU)'を実行する必要があります。 –