・Persistence of Collections of Basic Types
hasManyでStringとかが指定出来るようになりましたよ。
class Book {
static hasMany = [authors:String]
}
hsqlDBのfileで確認したところ以下のようなテーブルが出来るらしい
CREATE MEMORY TABLE BOOK_AUTHORS(BOOK_ID BIGINT,AUTHORS_STRING VARCHAR(255),CONSTRAINT FKCBA3F8F23FA913A FOREIGN KEY(BOOK_ID) REFERENCES BOOK(ID))
でもscaffoldには対応してくれないみたい。現段階では正直微妙?
・Persistence of Collections of Enum Types
上のhasManyでEnumが指定できるよ。
enum VehicleStatus { "NONE", "LITTLE", "MANY" }
class Book {
static hasMany=[statuses:VehicleStatus]
}
以下のようなテーブルが出来るっぽい
CREATE MEMORY TABLE BOOK_STATUSES(BOOK_ID BIGINT,VEHICLE_STATUS VARCHAR(255),CONSTRAINT FKA209D4B63FA913A FOREIGN KEY(BOOK_ID) REFERENCES BOOK(ID))
同じくscaffoldには対応してない
・Read-Only Access to Objects
ReadOnlyでデータをひっぱれるよ。
def book = Book.read(1)
通常Grailsではひっぱったドメインはフィールドの値を変更してコントローラーを抜けると、変更された値が自動的に保存されます。
readでひっぱるとフィールドの変更があっても元のデータは更新されません。
んがっ、book.save()したら更新されちゃいました :p
あとfindとかしたい場合はどうするんだろう
・Default Sort Order
ドメインのデフォソートを決められるよ。
class Book {
static hasMany=[authors:Author]
static mapping = {
authors sort:"name"
}
String title
}
class Author {
static belongsTo = [book:Book]
String name
}
今までは book.authors を参照した場合順番はランダムだったのがソートフィールドを指定出来るようになりました。
上の例だとauthorのname順で取得出来ます。
サンプルではドメイン自体のsortも決められるような事がかいてあったけど .list() では確認できませぬでした。
0 件のコメント:
コメントを投稿