小编rks*_*rks的帖子

GORM多对多映射,可与其他字段连接

我正在使用遗留数据库,并且与一个连接表有多对多的关联,我已经在很大程度上解决了映射工作正常.但是还有一个列,如果是Book,作者模型可以说nm_author_books包含一个名为'royalty'的字段.问题是如何从任何方向访问此字段?

class Book {
    String title
    static belongsTo = Author
    static hasMany = [authors: Author]
    static mapping = { authors joinTable: [name: "mm_author_books", key: 'mm_book_id' ] } 
}
class Author {
    String name
    static hasMany = [books: Book]
    static mapping = { books joinTable: [name: "mm_author_books", key: 'mm_author_id'] } 
}
Run Code Online (Sandbox Code Playgroud)

如果nm_author_book表具有[nm_book_id,nm_author_id,royalty],访问版税的方式是什么?

grails many-to-many grails-orm jointable

10
推荐指数
2
解决办法
5200
查看次数

gorm投射和元信息的丢失

在属性上使用投影时,结果将作为列表返回,其中元素的顺序与投影块中定义的顺序相同.同时,列表中缺少属性名称,这对开发人员来说确实是不利的,因为结果将被传递,并且调用者需要知道哪个值属于哪个属性.有没有办法从Criteria查询返回一个带有属性名称作为值的键的映射?

所以,以下代码:

def c = Trade.createCriteria()
def remicTrades = c.list {

    projections {
        property('title', 'title')
        property('author.name', 'author')
    }
    def now = new Date()
    between('publishedDate', now-365, now)
}
Run Code Online (Sandbox Code Playgroud)

返回:

[['book1', 'author1']['book2', 'author2']]
Run Code Online (Sandbox Code Playgroud)

相反,我希望它返回:

[[book:'book1', author:'author1'][book:'book2', author:'author2']]
Run Code Online (Sandbox Code Playgroud)

我知道我可以在得到结果之后安排这种方式,但我认真地认为标准应该使用属性别名来返回模仿SQL查询结果的地图列表,而不是一个平淡无奇的列表.

grails grails-orm createcriteria nhibernate-projections

8
推荐指数
1
解决办法
2495
查看次数

Erlang:生成列表中的奇怪字符

试图通过理解生成一个列表,在某些时候我开始看到奇怪的字符串.无法解释他们在这一点上的存在(猜测转义字符是ASCII码 - 但为什么?):

45> [[round(math:pow(X,2))] ++ [Y]|| X <- lists:seq(5,10), Y <- lists:seq(5,10)].                                     
[[25,5],
 [25,6],
 [25,7],
 [25,8],
 [25,9],
 [25,10],
 [36,5],
 [36,6],
 [36,7],
 "$\b","$\t","$\n",
 [49,5],
 [49,6],
 [49,7],
 "1\b","1\t","1\n",
 [64,5],
 [64,6],
 [64,7],
 "@\b","@\t","@\n",
 [81,5],
 [81,6],
 [81,7],
 "Q\b",
 [...]|...]
Run Code Online (Sandbox Code Playgroud)

erlang list-comprehension

2
推荐指数
1
解决办法
121
查看次数