【发布时间】:2025-11-30 19:30:01
【问题描述】:
我有一个带有以下内容的类 SheetLayout:
private String size
private int xPosition
private int yPosition
private Sheet sheet
private Report report
static belongsTo=[sheet : Sheet]
还有一个具有以下内容的类表:
@Id
private String id
private Date created = new Date()
private Date modified
private String title
private int sheetIndex
private String type
private Dashboard dashboard
static hasMany = [sheetLayouts : SheetLayout, slicersWidgets : SlicerWidget]
static belongsTo=[dashboard : Dashboard]
现在我正在尝试以任何可能的方式(使用或不使用 Sheet)保存 SheetLayout,但它不起作用。 我尝试过的选项之一:
def testsl(){
Sheet s = Sheet.findById("AAAAAaaaaaAAAaaaAA")
SheetLayout sl = new SheetLayout()
sl.setxPosition(0)
sl.setyPosition(1)
sl.setSize("satas")
s.addToSheetLayouts(sl)
s.save(flush:true)
}
它只是不工作:(
有什么想法吗?
【问题讨论】:
-
如果你有
static belongsTo=[sheet : Sheet],你就不需要private Sheet sheet。但我不知道它是否能解决问题 -
谢谢我在尝试,但它仍然没有帮助。我认为这是因为我现在也有具有静态 hasMany = [sheetLayouts : SheetLayout] 的实体 Report,当我尝试保存 SheetLayout 时它不起作用,因为我需要在 SheetLayout 对象的 report_id 中有值。
-
如果有错误堆栈跟踪,你能发布吗?
-
你试过打印一些数据吗?找到单子了吗?保存时也要写
...save(flush: true, failOnError: true),这样保存时会显示错误 -
您应该删除所有出现的
private。删除它们将为您提供私有字段以及公共 getter 和 setter,这是您想要的所有持久属性。
标签: java grails grails-orm