私はこのような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`)
ミスが見えない!