Grails引用域模型中的对象

时间:2012-06-13 17:35:40

标签: string performance grails object dns

我有一个简单的问题,我无法在网上找到答案。以下哪个域模型更有效:

class Text {

    User author

    static constraints = {}
}

class Text {

    String author

    static constraints = {}
}

用户对象的用户名为String。但哪个效率更高?要保存字符串并搜索对象还是保存对象?

2 个答案:

答案 0 :(得分:0)

第一个选项会在您使用条件查询时提供更准确的结果,并且它也会有效,JVM更容易比较对象哈希码,而不是在查询时比较字符串

答案 1 :(得分:0)

好吧,如果你使用一个对象,它往往会让你的生活更轻松,特别是如果你的应用程序增长。但是如果这个应用程序没有机会增长,那么没有理由只使用一个对象与其中的String作者(这将只是另一个层次的间接,没有任何目的)。 为了提高性能,使用User更好,因为它在一对一关联中默认使用lazy loading,并且在加载Text对象时不会加载User对象,所以当你要求它时你只有User 。除此之外,还有更好的OOP。 如果您正在讨论在这些域中查询作者的性能,那就是同样的事情。