0

子インスタンスが存在する場所ですべてのPostOrderをプルしようとしています

私のドメインは次のとおりです。

class PostOrder {

String pOrder
Date dateCreated
Picture picture
Post posts
Video video

static hasMany = [children : Child]
}

オブジェクトを取得するために使用しようとしているメソッドは次のとおりです。

 def getAllInOrder(Child child){
 def json =   PostOrder.findAllByChildren(child, sort: 'dateCreated', order: 'desc')    as JSON
    return json
}

これからSQL例外が発生します。何か案は?

また、これらは私の例外です:

util.JDBCExceptionReporter No value specified for parameter 1
errors.GrailsExceptionResolver SQLException occurred when processing request: [GET]    /FYP/profile/appPosts - parameters:
child: 1
No value specified for parameter 1. Stacktrace follows: 
java.sql.SQLException: No value specified for parameter 1
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
at com.mysql.jdbc.PreparedStatement.checkAllParametersSet(PreparedStatement.java:2595)
at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2571)
at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2497)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2251)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
at org.grails.datastore.gorm.GormStaticApi$_methodMissing_closure2.doCall(GormStaticApi.groovy:105)
at com.fyp.timeline.ProfileController$$ENmIB8q0.getAllInOrder(ProfileController.groovy:636)
at com.fyp.timeline.ProfileController$$ENmIB8q0.appPosts(ProfileController.groovy:624)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
4

1 に答える 1

1

試す

PostOrder.findAllByChildren(child, [sort: 'dateCreated', order: 'desc'])

この場合、子がリストであることが期待されるため、これで問題が完全に解決されるとは思いませんが。これを試して:

PostOrder.all.findAll{it.children.contains(child)}

それを行うためのより良い方法があるはずです、多分誰か他の人が電話をかけることができます。

于 2012-10-19T12:21:48.653 に答える