2016-06-02 4 views
0

ファイルのアップロードに基づいてデータベースにテーブルを作成したいとします。一度csvファイルをアップロードすれば、自分のデータベースにテーブルを作成し、各csvファイルに対して新しいテーブルを動的に作成する必要があります。GORMを使用してgrails 2.4.4で列を動的に作成する方法

現在、コントローラからファイルをアップロードしようとしています。コントローラから私はフィールドの値をドメインクラスに渡す必要があり、テーブル名はcsvファイル名と同じです。これをどのように解決できますか?

+1

これは単に不可能です。実行時に動的プロパティを持つDomainオブジェクトを定義することはできません。 あなたは何を解決しようとしていますか?あなたのユースケースは何ですか? – saw303

+0

私はcsvファイルをデータベースに格納する必要があり、各csvファイルは別のテーブルに格納し、テーブル名はcsvファイル名と同じにする必要があります。 – naina

+0

csvファイルを読みながら、create table queryを作成して実行します。このcreate tableクエリは動的であり、適切な型と制約を使用していることを確認する必要があります。代わりに、Mongoを使用することもできます。 –

答えて

0

リレーショナルデータベースは、実際にはダイナミックな永続性モデルには適していません.MongoDBのようなものが良いでしょう。あなたはGORMドメインモデルでできる最善のは、私は、これは正確に別のテーブルに格納されている各CSVファイルとして限りあなたの条件に一致しない実現

class CsvFile { 
    String fileName 
    static hasMany = [rows: Row] 
} 

class Row { 
    static belongsTo = [csvFile: CsvFile] 
    Map<String, Object> fields 
} 

のようなものですが、それは、と本当に実用的ではありませんGORMドメインモデルは、リレーショナルデータベースに格納されます。

関連する問題