這就像混合了groovy和Java。我創建了代碼作爲學習的一部分。在Onetomany中工作很急,而不是在Manytoone工作
===================================================================
@Entity
public class GroovyBoy implements SimpleEntity {
@Id
@GeneratedValue
private long Id;
private String name;
@OneToMany(fetch=FetchType.EAGER,cascade=CascadeType.ALL)
private List<GroovyBro> brothers;
@Override
public Long getId() {
return Id;
}
@Override
public void setId(Long id) {
Id = id;
}
}
===================================================================
@Entity
class GroovyBro implements SimpleEntity {
@Id
@GeneratedValue
private long Id;
private String name;
@ManyToOne(fetch=FetchType.EAGER)
private GroovyBoy brother;
@Override
public Long getId() {
return Id;
}
@Override
public void setId(Long id) {
Id = id
}
}
===================================================================
def dao = (MyDaoImpl) appContext.getBean("dao")
def boy = new GroovyBoy()
boy.name='boy1'
def bro1 = new GroovyBro()
bro1.name='bro1'
def bro2 = new GroovyBro()
bro2.name='bro2'
boy.brothers = [bro1, bro2]
dao.save(boy)
//dao.evict(boy)
println 'Id: ' + boy.brothers[0].id
def loadBro = new GroovyBro();
loadBro.id = boy.brothers[0].id
GroovyBro bro = (GroovyBro) dao.get(loadBro)
println 'Bro: ' + bro.brother
===================================================================
最後一行返回null。但是當我獲取GroovyBoy實體時,它會加載持久包,然後加載GroovyBro實例。 爲什麼GroovyBoy實例未加載?
在此先感謝。