1

私はこのような2つの単純なクラスを持っています:

@DatabaseTable(tableName = "movements")
public class Movement {

    @DatabaseField(generatedId = true)
    int id;

    @DatabaseField
    double amount;

    @DatabaseField(foreign = true)
    Category category;

    @ForeignCollectionField(eager = true)
    Collection<Tag> tags;

    //Other stuff
}

そして2番目:

@DatabaseTable(tableName = "tag")
public class Tag {

    @DatabaseField(generatedId = true)
    int id;

    @DatabaseField(foreign = true)
    Movement movement;

    @DatabaseField
    String name;

    //Other stuff
}

次の 2 つのコマンドに期待すること:

TableUtils.createTable(dbConnection, Tag.class);
TableUtils.createTable(dbConnection, Movement.class);

db内に2つのテーブルを作成し、相互に右参照します。Insteen は、「Movement」クラス内の ForeignCollection が無視されたようです。これは情報をデバッグするかもしれません:

[INFO] TableUtils creating table 'tag'
[INFO] TableUtils executed create table statement changed 0 rows: CREATE TABLE `tag` (`id` INTEGER AUTO_INCREMENT , `movement_id` INTEGER , `name` VARCHAR(255) , PRIMARY KEY (`id`) ) 
[INFO] TableUtils creating table 'movements'
[INFO] TableUtils executed create table statement changed 0 rows: CREATE TABLE `movements` (`id` INTEGER AUTO_INCREMENT , `amount` DOUBLE PRECISION , `category_id` INTEGER , PRIMARY KEY (`id`)

ミスが見えない!

4

1 に答える 1