我有一个简单的问题,我无法在网上找到答案。以下哪个域模型更有效:
class Text {
User author
static constraints = {}
}
class Text {
String author
static constraints = {}
}
用户对象的用户名为String。但哪个效率更高?要保存字符串并搜索对象还是保存对象?
答案 0 :(得分:0)
第一个选项会在您使用条件查询时提供更准确的结果,并且它也会有效,JVM更容易比较对象哈希码,而不是在查询时比较字符串
答案 1 :(得分:0)
好吧,如果你使用一个对象,它往往会让你的生活更轻松,特别是如果你的应用程序增长。但是如果这个应用程序没有机会增长,那么没有理由只使用一个对象与其中的String作者(这将只是另一个层次的间接,没有任何目的)。 为了提高性能,使用User更好,因为它在一对一关联中默认使用lazy loading,并且在加载Text对象时不会加载User对象,所以当你要求它时你只有User 。除此之外,还有更好的OOP。 如果您正在讨论在这些域中查询作者的性能,那就是同样的事情。