Switch to full style
Java persistent API
Post a reply

FetchType EAGER

Sun Apr 25, 2010 11:56 pm

The following show relationship @OneToMany , when using fetch Type EAGER . fetch Type EAGER , means the data are loaded eagerly . For example if we have entity topic and entity comment which are related to each other . If you loaded topic entity , its related comments array will be loaded too in same-time ,but take care ,this may cause a performance issues . Sometimes you don't need the related data of your entity to be loaded .


Topic entity :
Code:

import javax
.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import java.util.Date;
import java.util.Set;

import javax.persistence.SequenceGenerator;

@
Entity
@Table(name="TOPIC")
@
SequenceGenerator(sequenceName="TOPIC_SEQ",name="TOPIC_SEQ_GEN")
public class topic {

    private long Id;
    private String title;
    private Date creationDate;
    private Date modifedDate;
    private String content;
    private String pending;
    private String editUser;
    private Set<comment> commentSet;
    
    
@Id
    
@GeneratedValue(generator="TOPIC_SEQ_GEN",strategy=GenerationType.SEQUENCE)
    public long getId() {
        return Id;
    }
    public void setId(long id) {
        Id = id;
    }
    
    
@Column(name="TITLE")
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    
    
@Column(name="CREATION_DATE")
    public Date getCreationDate() {
        return creationDate;
    }
    public void setCreationDate(Date creationDate) {
        this.creationDate = creationDate;
    }
    
    
@Column(name="MODIFED_DATE")
    public Date getModifedDate() {
        return modifedDate;
    }
    public void setModifedDate(Date modifedDate) {
        this.modifedDate = modifedDate;
    }
    
    
@Column(name="CONTENT")
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    
    public void setPending
(String pending) {
        this.pending = pending;
    }
    @Column(name="PENDING")
    public String getPending() {
        return pending;
    }
    public void setEditUser(String editUser) {
        this.editUser = editUser;
    }
    @Column(name="EDIT_USER")
    public String getEditUser() {
        return editUser;
    }
    public void setCommentSet(Set<comment> commentSet) {
        this.commentSet = commentSet;
    }
    @OneToMany(fetch=FetchType.EAGER ,cascade=CascadeType.ALL,mappedBy="topic")
    public Set<comment> getCommentSet() {
        return commentSet;
    }
}
 




Post a reply
  Related Posts  to : FetchType EAGER
 FetchType LAZY     -  

Topic Tags

Java JPA