如何在非持久性的域类中设置变量.我希望能够写入和读取该变量,但我不希望它成为表的一部分.
在rails中执行此操作的方法是使用设置变量attr_accessor.Grails有可能这样吗?有谁知道如何做到这一点?
谢谢!
我是grails和groovy的新手.我有一个具有开始和结束日期的Project域类.我想提出一个约束,指定结束日期需要大于开始日期(然后项目的另一个子对象需要让其startdate和enddate与父项目的日期一起验证).这可能是最小约束还是我必须把它放在其他地方?唯一约束允许以这种方式链接两个属性,希望min/max约束允许这样做.我试过了
startDate(blank:false)
endDate(blank:false, min:'startDate')
Run Code Online (Sandbox Code Playgroud)
它会抛出一个错误,指出属性startDate在Project上不可用
您好我有以下域类.
class Student {
int age
static hasMany = [courses:Course]
}
class Course {
String name
static hasMany = [students:Student]
}
Run Code Online (Sandbox Code Playgroud)
我想找到7岁的学生参加课程(身份1).
我可以使用动态查找程序或条件构建器或HQL吗?
我不想做跟随,因为它加载所有学生效率低下:
def course = Course.get(1);
course.students.findAll{ it.age == 7 }
Run Code Online (Sandbox Code Playgroud) 似乎在Grails 中有两种不同的方式来声明已排序的关联:
方法1(请参阅此处)使用默认排序顺序
class Book {
String title
}
class Author {
static hasMany = [books : Book]
static mapping = { books sort: "title"}
}
Run Code Online (Sandbox Code Playgroud)
方法2(见这里)使用SortedSet
class Book implements Comparable {
String title
int compareTo(obj) {
title <=> obj.title
}
}
class Author {
SortedSet books
static hasMany = [books : Book]
}
Run Code Online (Sandbox Code Playgroud)
我不确定使用哪一个,有什么区别(如果有的话),使用一个与另一个之间的利弊.
我将不胜感激任何澄清.
谢谢
当谈到grails时,我是一个完整的菜鸟(当谈到groovy时,我仍然非常乏味)所以如果这是一个愚蠢的问题,我道歉.
我正在构建一个简单的Web应用程序,我想基于文件系统对象(即目录结构和文件类型)而不是数据库数据来控制应用程序中的部分域.这样做有多容易,或者与GORM交织在一起的域对象是不值得尝试的?
我应该在grails应用程序中将临时域类放在哪里?
即我有一个Action类将被传递,并使用,但从未保存.它应该在grails-app/domain文件夹中,还是在其他地方?
我有几个Grails的,其中包括2.1域类dateCreated和lastUpdated那格姆自动管理,如字段:
class Person {
Date dateCreated
Date lastUpdated
String name
}
Run Code Online (Sandbox Code Playgroud)
我希望 Grails在运行时自动填写这些字段,但我也想创建一些测试数据,我可以手动定义这些日期的值.问题是Grails会自动设置值,如果这些字段带有拦截器,即使我已经专门设置它们.
我已经看到了这个SO问题,它描述了如何允许更改dateCreated,但我也需要改变lastUpdated.这可能吗?
当我将实例保存为:
test.save()
Run Code Online (Sandbox Code Playgroud)
保存可能会失败.我可以
if (!test.save(flush:true) {
// save failed
}
Run Code Online (Sandbox Code Playgroud)
考虑一下我从另一个函数获取实例并且无法执行此检查的情况,因为我不会再次保存实例.
有没有办法检查实例是否仍然存在于数据库中还是具有未保存状态?
我想制作一个域对象的副本.实现这一目标的最简单方法是什么?
我意识到我可以创建一个新记录,然后遍历每个字段逐个复制数据 - 但我认为必须有一个更简单的方法来做到这一点......
在Rails中有一种简单的方法:
#rails < 3.1
new_record = old_record.clone
#rails >= 3.1
new_record = old_record.dup
Run Code Online (Sandbox Code Playgroud)
Grails有没有相应的东西?
我正面临着关于Grails继承的问题.我有一个域类Person.grooy:
class Person{
String name
String contactNumber
Address address
}
Run Code Online (Sandbox Code Playgroud)
现在,我正在为员工和客户扩展Person.groovy,如:
class Employee extends Person{
String designation
}
class Customer extends Person{
String interest
}
Run Code Online (Sandbox Code Playgroud)
现在我想在我的数据库中为Employee和Customer提供单独的表,其中包含Person列,即name,contactNumber和associate address key.我怎么能实现这一点.我搜索过每一个地方,但这方面没什么.这种方法在GORM中是不可能的吗?请回答.多谢你们