grails - 如何在Grails Controller 上的Bean实例中 “persist in memory”更改

标签 grails gorm

我尝试使用Grails在 Controller 的bean实例中进行一些修改:

GSP:

 g:select name="item" noSelection="${['null':'Select...']}"       
 from="${Item.list()}" optionValue="name" optionKey="id"/>


 g:submitToRemote url="[controller:'Person', action:'addItem']"
 update="itemsPerson" value="Add"/>

.....

PersonController:
def addItem(Person person){     

Item item = Item.findItemById(params.item);     
person.addToItens(item);

println person.itens.size() "**ever time has only one item!**"

}

问题是,当我将项目添加到person时,Person对象的状态不会保留该项目,每次调用方法addItem时,person.items再次为空。我知道我可以亲自参加 session ,但是还有另一种方式可以亲自参加 session list ?

最佳答案

这是观察结果:

Save() is not called after person is edited



尝试输入您的代码,然后再次验证:
person.save(flush:true)

另外,您可能需要放置一些日志以确保findItemById()返回正确的item

关于grails - 如何在Grails Controller 上的Bean实例中 “persist in memory”更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38864414/

相关文章:

grails - 如何一步一步保存 'rooted'域类树?

oracle - 域类映射:数据源不起作用

hibernate - 什么时候不使用Grails域类中的版本号?

java - 如何获取Hibernate Query的ResultSet中的浮点值?

Grails Spring Security 默认配置 : How to define default user and password

json - grails初始化bean加载顺序

grails - Grails/GORM以错误的顺序保存

grails - grails内部hasMany类中的searcheable插件搜索

grails - 在grails域中具有通用的belongsTo

unit-testing - 如何在Grails 3中填充域类以进行单元测试