Total members 11892 |It is currently Mon Sep 16, 2024 8:59 pm Login / Join Codemiles

Java

C/C++

PHP

C#

HTML

CSS

ASP

Javascript

JQuery

AJAX

XSD

Python

Matlab

R Scripts

Weka





The one to many relation between comment and topic table table is represented in the following code .One to many and one to many is bidirectional . I used @OneToMany and @ManyToOne .

Code:

FetchType
.LAZY 

Means don't load the object until the get function is accessed .This saves memory and avoid unneeded hits.
Code:

cascade
=CascadeType.ALL


Means one the referenced record deleted ( here topic) , all the other records use this reference is deleted .(here is comments)

Here the code example between the table "comment" and "topic" .

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.LAZY,cascade=CascadeType.ALL,mappedBy="topic")
    public Set<comment> getCommentSet() {
        return commentSet;
    }
}
 


comment entity :
Code:


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.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

@
Entity
@Table(name="COMMENT")
@
SequenceGenerator(sequenceName="COMMENT_SEQ",name="COMMENT_SEQ_GEN")
public class comment {
    private long id;
    private String content;
    private topic topic;
    
    public void setId
(long id) {
        this.id = id;
    }
    @Id
    
@GeneratedValue(generator="COMMENT_SEQ_GEN",strategy=GenerationType.SEQUENCE)
    public long getId() {
        return id;
    }
    
    
@Column(name="CONTENT")
    public void setContent(String content) {
        this.content = content;
    }
    public String getContent() {
        return content;
    }
    
   
    public void setTopic
(topic topic) {
        this.topic = topic;
    }
 @ManyToOne(fetch =  FetchType.LAZY)
    @JoinColumn(name = "TOPIC_ID", nullable = false)
    public topic getTopic() {
        return topic;
    }
    

}
 




_________________
M. S. Rakha, Ph.D.
Queen's University
Canada


Author:
Mastermind
User avatar Posts: 2715
Have thanks: 74 time
Post new topic Reply to topic  [ 1 post ] 

  Related Posts  to : one to many relation JPA example
 cascade=CascadeType.REFRESH with many to one relation     -  



Topic Tags

Java JPA






Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
All copyrights reserved to codemiles.com 2007-2011
mileX v1.0 designed by codemiles team
Codemiles.com is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to Amazon.com