具有fetch的OneToMany注释如何工作?

时间:2016-06-11 17:31:47

标签: java mysql hibernate jpa hibernate-onetomany

这里是Hibernate新手。

所以我有一个包含许多Opportunity对象的User对象:

@Entity
public class User implements Serializable{

    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long userId;
    private String firstName;
    private String lastName;
    private String email;
    @OneToMany(fetch=FetchType.EAGER, cascade=CascadeType.ALL, mappedBy="user")
    private List<Opportunity> opportunities = new ArrayList();
    @Temporal(TemporalType.TIMESTAMP)
    private Date creationDate;

我有一个与用户具有ManyToOne关系的Opportunity对象:

@Entity
public class Opportunity implements Serializable{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long opportunityId;
    @ManyToOne(fetch=FetchType.EAGER, cascade=CascadeType.ALL)
    @JoinColumn(name="userId", nullable=false)
    private User user;
    private String listingUrl;
    private String position;
    private String organization;
    private String location;
    @Column(columnDefinition="text")
    private String notes;
    @Enumerated(EnumType.STRING)
    private Action action;
    @Temporal(TemporalType.TIMESTAMP)
    private Date creationDate;
    @Temporal(TemporalType.DATE)
    private Date dueDate;

这里发出所有get / set方法只是为了节省空间。 当我使用User类的getOpportunities()方法时,我假设会发生这种情况,它会返回数据库中的所有Opportunity对象。我认为注释会自动为我拉动它们。但事实并非如此。 所以我的问题是,注释是否有助于从数据库中检索数据?怎么样?或者它们只是用于创建数据库?如果我想获得所有机会,我是否必须编写自定义事务/查询?

0 个答案:

没有答案