私は次の2つのエンティティを持っています:
class Role {
  @Id Long id;
  @Column String email;
  String role;
  @ManyToOne User user;
}
class User {
  @Id Long id;
  @Column(unique=true) String email;
  String password;
  @OneToMany(mappedBy = "user")
  @OrderBy("role asc")
  List<Role> roles;
}
SQLは次のとおりです。
CREATE TABLE USER (
ID BIGINT NOT NULL, 
EMAIL VARCHAR(255) UNIQUE, 
PASSWORD VARCHAR(255), 
PRIMARY KEY (ID)
)
CREATE TABLE ROLE (
ID BIGINT NOT NULL, 
EMAIL VARCHAR(255),
ROLE VARCHAR(255), 
USER_ID BIGINT, 
PRIMARY KEY (ID),
FOREIGN KEY (USER_ID) REFERENCES USER(ID)
)
次のJUnitは、最後から2番目の行で失敗します。ユーザー(親)を子から自動的にロードしますが、子を親から自動的にロードしません。私は何を間違えましたか?
    Role r = em.createQuery("select r from Role r where r.email = :email", Role.class)
            .setParameter("email", "john@google.com")
            .getSingleResult();
    assertEquals("registered", r.role());
    assertEquals("john@google.com", r.user().email());
    User u = em.createQuery("select u from User u where u.email = :email", User.class)
            .setParameter("email", "john@google.com")
            .getSingleResult();
    assertEquals("john@google.com", u.email());
    assertEquals("asdf", u.password());
    assertEquals(1, u.roles().size()); FAILS HERE!!!
    assertEquals("registered", u.roles().get(0).role());
EclipseLink 2.3.2(JPA)を使用しています