Switch to full style
Java persistent API
Post a reply

Delete using native query

Wed Apr 21, 2010 7:37 pm

Delete using native query , the following example is supposed to delete a topic record using its id .Notice that native query use actual physical names of database . For example TOPIC (Database table name ) instead of Topic (Name of the entity class ) .

Code:

package com
.codemiles.jpa;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;

/**
 * @author codemiles.
 *
 */
public abstract class JPAService {
    private 
EntityManager entityManager;

    
/**
     * @param args
     */
    
public void deleteTopic(Topic topic) {
    
EntityManagerFactory factory Persistence
            
.createEntityManagerFactory("persistenceUnitName");
    
entityManager factory.createEntityManager();
    
entityManager.getTransaction().begin();
    
deleteTopicById(topic.getId());
    
entityManager.getTransaction().commit();
    
entityManager.close();
    
factory.close();

    }
 
 
    
/**
     * @param id 
     *  
     * @return
     *   number of affected columns . 
     */
    
public int deleteTopicById(int id){
    
Query query entityManager.createNativeQuery("Delete from TOPIC where ID=?");
    
query.setParameter(1id);
    return 
query.executeUpdate();
    
    }

}

 



entity class :
Code:

package com
.codemiles.jpa;
import java.util.Collection;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;



@
Entity
@Table(name="TOPIC")
public class 
Topic implements java.io.Serializable{
    
/**
     * 
     */
    
private static final long serialVersionUID 1L;
    @
Id
    
private int Id;
    private 
String title;
    private 
Date creationDate;
    private 
Date modifedDate;
    private 
String content;
    @
OneToMany(mappedBy="topic")
    private 
Collection<Commentcomments;

    public 
int getId() {
        return 
Id;
    }
    public 
void setId(int 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 setComments(Collection<Commentcomments) {
    
this.comments comments;
    }
    public 
Collection<CommentgetComments() {
    return 
comments;
    }
}
 




Post a reply
  Related Posts  to : Delete using native query
 Named Native Query     -  
 Insert using native query     -  
 What is a native method     -  
 DELETE Commands     -  
 Delete directory in php     -  
 delete file in asp     -  
 Delete file     -  
 Delete a file in php     -  
 DML Statements, insert row, delete row     -  
 Delete session variable     -