私は最初のGrailsアプリを作成しており、Grailsアプリケーションジェネレーターを使用して既存のPostgresqlスキーマを逆にしました。(GRAG)アプリを実行すると、次のエラーが発生します。
initメソッドの呼び出しに失敗しました。ネストされた例外はorg.hibernate.HibernateExceptionです:列event_staff_idのpublic.event_staffの列タイプが間違っています。見つかった:シリアル、期待された:int8
これは、「シリアル」がPostgresqlの実際のタイプではなく、シーケンスに関連付けられている自動インクリメント整数値のエイリアスであることが原因だと思います。この問題を回避するためのクリーンな方法があると思いますが、Hibernateの経験がないため、前進するための最善の方法がわかりません。
問題のクラスは次のとおりです。
class EventStaff {
static mapping = {
table 'event_staff'
// version is set to false, because this
// isn't available by default for legacy databases
version false
id generator:'identity', column:'event_staff_id', name: 'eventStaffId'
staffMemberIdStaffMember column:'staff_member_id'
gameIdGame column:'game_id'
}
Long eventStaffId
Boolean shouldNotify
Date created
Date modified
// Relation
StaffMember staffMemberIdStaffMember
// Relation
Game gameIdGame
static constraints = {
eventStaffId()
shouldNotify()
created()
modified()
staffMemberIdStaffMember()
gameIdGame()
}
String toString() {
return "${eventStaffId}"
}
}