2015-09-17 4 views
2

Я следую How can I sort related entities in Ebean?, но я получил эту ошибкуfind.all рода oneTomany в Ebean

RuntimeException: Can not find Master [class models.Card] 
in Child[models.FinalMark]  

ли решение забыли поставить это? Даже если ID не работает.

@Id 
public Integer id; 

Я думаю, что мое дело совсем похоже.

@Entity 
public class Club extends Model { 
    @Id 
    public Long id; 
    public String name; 

    @OneToMany(cascade = CascadeType.ALL) 
    @OrderBy("name asc") 
    public List<Male> male = new ArrayList<>(); 

    @OneToMany(cascade = CascadeType.ALL) 
    @OrderBy("name asc") 
    public List<Female> female = new ArrayList<>(); 

    private static Finder<Long, Club> find = 
    new Finder<>(Long.class, Club.class); 
} 

@Entity 
public class Male extends Model { 
    @Id 
    public Long id; 
    public String name; 
    private static Finder<Long, Male> find = new Finder<>(Long.class, Male.class); 
} 

@Entity 
public class Female extends Model { 
    @Id 
    public Long id; 
    @ManyToOne 
    public Club club; 
    public String name; 
    private static Finder<Long, Female> find = new Finder<>(Long.class, Female.class); 
} 

Я intial данные

male: 
- !!models.Male &m1 
    name:   "Martin" 

- !!models.Male &m2 
    name:   "Alan" 

female: 
- !!models.Female &f1 
    name:   "June" 

- !!models.Female &f2 
    name:   "Babe" 


club: 
- !!models.Club 
    name:   "BigClub" 
    male: 
    - *m1 
    - *m2 
    female: 
    - *f1 
    - *f2 

во время инициализации.

Map<String, List<Object>> all = (Map<String, List<Object>>) Yaml 
        .load("initial-data.yml"); 

    // Insert club 
    Ebean.save(all.get("club")); 

, когда я называю Club.find.all(), мужские и женские поля по-прежнему не сортируются по возрастанию. Я пробовал 2 разных способа (каждый у мужчин & женщин). оба тоже не сортируются в asc. Есть идеи?

+0

у вас есть другие модели? так как ebean пытается найти класс модельной карты, которого нет – Seroney

+0

Что такое Person.class? Ваш искатель в классе Club ссылается на Person.class – Atif

+0

@Seroney, он имел в виду решение в моем первом заявлении (см. Гиперссылку) – keepscoding

ответ

0

Вы должны указать «путь» от связанного объекта, когда вы настраиваете заказ-по, как так:

@OneToMany(cascade = CascadeType.ALL) 
@OrderBy("male.name asc") 
public List<Male> male = new ArrayList<>(); 

@OneToMany(cascade = CascadeType.ALL) 
@OrderBy("female.name asc") 
public List<Female> female = new ArrayList<>(); 

В противном случае, он думает, что вы имеете в виду «имя» поля из текущий класс.

+0

Извините, я должен упомянуть, что использую старый ebean. После портирования последняя игра-игра в 2.4. он работает с «id asc». ваше предложение не работает. В любом случае, спасибо. – keepscoding