私は Grails のバックグラウンドを持っており、最近、GORM を使用して Micronaut でプロジェクトを開始しました。
次のコードがあります。
package micronaut.query.association.domain
import org.grails.datastore.gorm.GormEntity
@grails.gorm.annotation.Entity
class Author implements GormEntity<Author> {
String name
static hasMany = [
books: Book
]
static mapping = {
books fetch: 'join'
}
}
package micronaut.query.association.domain
import org.grails.datastore.gorm.GormEntity
@grails.gorm.annotation.Entity
class Book implements GormEntity<Book> {
String name
Author author
}
package micronaut.query.association
import io.micronaut.http.annotation.Controller
import io.micronaut.http.annotation.Get
import io.micronaut.http.HttpStatus
import micronaut.query.association.domain.Author
import grails.gorm.transactions.ReadOnly
@groovy.transform.CompileStatic
@Controller("/author")
class AuthorController {
@Get("/")
@ReadOnly
List<Author> index() {
return Author.list()
}
}
アプリは問題なくコンパイルおよび起動しますが、URL http:localhost:8080/author にアクセスしようとすると、次のエラーが表示されます。
10:25:29.431 [nioEventLoopGroup-1-2] エラー imhsnetty.RoutingInBoundHandler - 予期しないエラーが発生しました: オブジェクトのエンコード中にエラーが発生しました [[micronaut.query.association.domain.Author : 1, micronaut.query.association.domain.Author : 2] ] から JSON へ: 無限再帰 (StackOverflowError) (参照チェーン経由: micronaut.query.association.domain.Book["author"]-
| | バージョン: 1.0.1 | JVM バージョン: 1.8.0_192 OS: Linux 4.19.4-arch1-1-ARCH
私は何か間違ったことをしていますか?ありがとうございます。私のメッセージが正しい方法で投稿されていない場合は、ご容赦ください。これは、スタック オーバーフローでの私の最初の試みです。