jnr*_*jnr 6 java hibernate jpa one-to-many
OneToMany + MapKeyJoinColumn对我不起作用,请说明我做错了什么.
我正在使用JPA 2.0 + Hibernate 3.6.1并希望映射以下表:

到课程:
@Entity
public class Question {
    // id and other fields
    @OneToMany(mappedBy="question", cascade = CascadeType.ALL)
    @MapKeyJoinColumn(name="language_id")
    private Map<Language, Statement> statements =
        new HashMap<Language, Statement>();
}
@Entity
public class Statement {
    @Id
    private Long id;
    @ManyToOne
    @JoinColumn(name = "language_id", nullable = true)
    private Language language;
    @ManyToOne
    @JoinColumn(name = "question_id", nullable = false)
    private Question question;
    @Column(name = "message")
    private String message;
}
@Entity
public class Language {
    @Id
    private Long id;
    @Column(name = "name")
    private String name;
}
但它不起作用.EntityManager正确地保留它,但是当我检索Question时,在它的语句映射中只有一个语言到空的条目.请帮忙
Edit1:奇怪,但是当我预加载所有语言时,如下所示:
String sql = "select l from Language l";
List languages = entityManager.createQuery(sql, Language.class).getResultList();
然后它的作品!
有谁知道如何让hibernate自动加载某些类的所有对象?
| 归档时间: | 
 | 
| 查看次数: | 6503 次 | 
| 最近记录: |