YAML макет данных ссылки на объекты не работает - PullRequest
0 голосов
/ 25 февраля 2012

В моем проекте Play Framework есть следующий файл mockdata.yml:

Account(cash):
  name: Cash
  type: CASH
  balance: 1015

Category(food):
  name: Food
  type: DISCRETIONARY_EXPENSE
  monthlyBudget: 200

Transaction(txn0001):
  account: cash
  category: food
  date: 2012-02-24
  amount: 12

Я загружаю эти фиктивные данные при запуске приложения и вижу все записи, доступные в моей базе данных. Однако запись Transaction содержит null в столбцах account и category.

Мой формат соответствует приведенному примеру здесь , но ссылка на сущность от Transaction до Account и Category не работает.

Что может быть не так?

Для справки, вот мои модельные объекты:

@Entity
public class Account extends Model
{
    public String name;
    public AccountType type;
    public long balance;
}

@Entity
public class Category extends Model
{
    public String name;
    public CategoryType type;
    public long monthlyBudget;
}

@Entity
public class Transaction extends Model
{
    public Account account;
    public Category category;
    public Date date;
    public long amount;
}

(AccountType и CategoryType являются перечислениями.)

1 Ответ

1 голос
/ 25 февраля 2012

Argh! Как только я разместил свои классы моделей, я увидел проблему. (Люблю, когда это происходит!)

Вот решение для всех, кто сталкивается с той же проблемой: поля Account и Category класса Transaction требуют @ManyToOne аннотаций. Как только я их добавил, все заработало, как и ожидалось.

@Entity
public class Transaction extends Model
{
    @ManyToOne public Account account;
    @ManyToOne public Category category;
    public Date date;
    public long amount;
}
...