- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们在Grails中开发的Web应用程序最近进入了压力测试阶段,现在我们遇到的问题似乎只有在多个用户(不同用户帐户)同时执行相同操作时才会发生。这些 Action 是事务性的,但是它们都不在同一对象上执行(正在创建新对象)。我们得到的异常(exception)是:
Class: org.hibernate.PropertyValueException Message: not-null property references a null or transient value: xxx.xxx.xxx.domains.PathSections._PathViews_sectionsBackref
class PathViews extends View{
static constraints = {
molreports(nullable:true)
molorders(nullable:true)
otherreports(nullable: true)
sections(nullable:true)
addendum(nullable:true)
images(nullable:true)
edits(nullable:true)
}
List sections
List otherreports
List molreports
List molorders
List images
PathEdits edits
PathSections addendum
int headings
String accid
static auditable = true
static hasMany = [sections: PathSections, otherreports: PathSections, molorders:MolecularOrder, molreports: MolecularReport, images: PathLocalImage]
static mappedBy = [sections: 'pathviews', otherreports: 'reports']
class PathSections extends Sections {
static constraints = {
pathviews(nullable:true)
reports(nullable:true)
}
static auditable = true
static belongsTo = [pathviews: PathViews, reports: PathViews]
Grails: 2.3.7 Hibernate: 3.6.10.10
最佳答案
您应该做的第一件事是在相同的次要版本2.3.11中升级到最新版本。它不太可能提供帮助,但您可能会很幸运。
集合是棘手的,因为它们被视为拥有的域类的属性,但是被表示为多个数据库记录。因此,您会产生有趣的效果,例如无法正确锁定更新实例。给定“作者有很多书”,如果您显式锁定作者实例,则生成的SQL类似于select ... from author for update where id=?
。但是您不能锁定书籍,如果可以并且馆藏更大,您是否想锁定一百万个馆藏实例?因此,在子实例在顶级实例之间共享时,甚至在与同步请求重叠的Ajax请求之间共享时,您不可避免地会遇到多对多的并发问题。
这仅仅是数据的正确性-使用集合在GORM中进行持久化的潜在性能成本非常高。我4年前做的This talk现在和现在一样放松,它演示了1对多对多的性能问题,并显示了不使用集合且不受这些问题影响的代码。您确实需要做更多的工作,但是我认为这是一个很小的代价。
关于hibernate - Grails-非空属性仅对并发用户引用空值或瞬时值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26569429/
我是一名优秀的程序员,十分优秀!