ForeignCollection генерирует SQLException при итерации с использованием потоков - PullRequest
0 голосов
/ 12 июня 2019

У меня есть три класса сущностей: PlayerData, IpData и TwinDataTwinData, и IpData ссылаются на PlayerData с внешним ключом.

Вот код:

@DatabaseTable
public class PlayerData {
    @DatabaseField(generatedId = true)
    private int id;

    @DatabaseField
    private UUID uuid;

    @ForeignCollectionField
    private ForeignCollection<IpData> ips;

    @ForeignCollectionField
    private ForeignCollection<TwinData> twins;

    // Getters and setters...
}

@DatabaseTable
public class IpData {
    @DatabaseField(generatedId = true)
    private int id;

    @DatabaseField(foreign = true)
    private PlayerData playerData;

    @DatabaseField
    private Date firstUsage;

    @DatabaseField
    private String address;

    // Getters and setters...
}

@DatabaseTable
public class TwinData {
    @DatabaseField(generatedId = true)
    private int id;

    @DatabaseField(foreign = true)
    private PlayerData mainPlayer;

    @DatabaseField
    private boolean adminNoticed;

    @DatabaseField
    private UUID uuid;

    // Getters and setters...
}

Когда я пытаюсь перебрать PlayerData.ips с потоками,Я получаю SQLException [SQLITE_ERROR] SQL error or missing database (no such column: playerData_id).Таблицы генерируются автоматически с TableUtils.createIfNotExists().

. Этот код вызывает это исключение:

// playerData is retrieved from Dao<PlayerData, Integer>
playerData.getIps().stream().noneMatch(ip -> ip.getAddress().equals(playerIp))

Я просто не понимаю, почему он пытается выбрать столбец playerData_id,Нужно ли вручную создавать таблицы базы данных для TwinData и IpData со столбцом playerData_id?Еще не пробовал, но не думаю, что это поможет.

...