2012-01-25 8 views
1

これはGrails & GORMで遭遇した最も奇妙な問題です。Grails:不正確な整数値:行1の 'scenarioId'列の '¬' '

セットアップデータ・バインディングで設定した複数の接続を持つシナリオを保存するとき

class Scenario{ List connections = [] ... static hasMany=[connections:Connection]} 

class Connection{ Scenario scenario; belongsTo=Scenario } 

を次のように。変数を見ると、すべてがうまく見えます。データがバインドされ、すべてのオブジェクトが正しく表示されます。

Incorrect integer value: '’' for column 'scenarioId' at row 1 

ます。java.sql.SQLExceptionです: は、その後、私はこの例外を取得します。

これはとても奇妙です!私は間違いなくシナリオidが¬ではないことを確信しています、それは整数なので、どうすればそれもできますか?

Grails proは私の助けが必要なようです。

編集:SQLログを確認したところ、scenarioIdがVARBINARYとして間違って挿入されているようです。これをやろうとする理由がわかりません...

+0

Grailsのどのバージョンですか?また、エラーの原因となっているシナリオを作成するために使用するコードを追加できますか? –

+0

2.0コードは何も特別なものではありません。私はデータをバインドしているので、それはただscenario.properties = paramsです。 scenario.save()しかし、編集を確認してください... –

+0

この例外をスローしているあなたのコードを共有することはできますか? –

答えて

3

データベースに休止状態のエンティティを挿入しようとしたときに同じエラーが発生しました。

Caused by: java.sql.SQLException: Incorrect integer value: '’' for column 'person' at row 1 

私の問題は私のエンティティで、私はこのような列を定義持っていたということでした。

@Column(name = "person", nullable = false) 
private Person person; 

をしかし、それはそのように定義されている必要があります

@ManyToOne 
@JoinColumn(name = "person", nullable = false) 
private Person person; 

問題でした私のエンティティをデータベースに挿入するとき、hibernateはPersonのidフィールドの代わりにPersonオブジェクトを挿入しようとしていました。

多分あなたの問題は同じ種類の問題ですか?整数を挿入する代わりに、エンティティの文字列変換を挿入します。

関連する問題