2012-06-13 58 views
0

我有一個簡單的問題,我無法在網上找到答案。以下哪個域模型更高效:Grails在域模型中引用對象

class Text { 

    User author 

    static constraints = {} 
} 

class Text { 

    String author 

    static constraints = {} 
} 

用戶對象具有用戶名作爲其中的字符串。但哪個更有效率?要保存字符串並搜索對象或保存對象?

回答

0

第一個選項會給出更精確的結果,而你會使用標準的查詢,這將有效地過,它更易於使用,同時查詢

0

好吧,如果你使用JVM來比較對象哈希碼而不是比較字符串它往往會讓你的生活更輕鬆,尤其是如果你的應用程序增長的話。但是,如果這個應用程序沒有增長的可能性,那麼就沒有理由只在其中使用String作者的對象(這只是另一個沒有任何目的的間接方向)。 爲了提高性能,使用User會更好,因爲默認情況下,它使用lazy loading以一對一的關聯關係,並且當您加載Text對象時,User對象將不會被加載,所以當您請求時只有User。除了它更好的OOP。 如果您正在討論在這些域中查詢作者的性能,那是一回事。