私は Grails を初めて使用し、Grails 2.1 と MySQL 5.5 バックエンドを使用してサンプル プロジェクトを構築して学習しています。
JodaTime 1.4 プラグインをインストールしてから実行しましたgrails install-joda-time-templates
しかし、Domain Class フィールドを org.joda.time.DateTime 型として宣言すると、新しいエントリを保存しようとするとエラーが発生しました。
問題を切り分けるために、単純なドメイン クラスを作成しました。
import org.joda.time.DateTime
class Project
{
String name
DateTime startDate
static constraints = {
name(blank: false, maxSize: 50)
startDate(validator: {return (it > new DateTime())})
}
}
コントローラーは、ドメイン クラスを使用するように scaffold を設定するだけです。
私の DataSource.groovy はdbCreate = "create-drop"
、テーブルが Grails によって作成されるようにしているため、 を指定しています。
保存しようとすると、次のエラーが表示されます。
Class:com.mysql.jdbc.MysqlDataTruncation
Message:Data truncation: Data too long for column 'start_date' at row 1
Grails が作成した MySQL データベースの project.start_date カラムを見ると、型は TINYBLOB です。
JodaTime の DateTime フィールドのデータを格納するには、TINYBLOB では不十分かもしれないと考えています。
Grailsに適切なタイプを作成させる方法を知っている人はいますか?
どうもありがとうございました。