How do I delete persistent object in Hibernate?
Category: org.hibernate, viewed: 1080 time(s).
Continuing the previous example How do I get object from database in Hibernate?, we now add the delete function in our LabelManager class.
package org.kodejava.example.hibernate.app;
import java.util.Date;
import org.hibernate.Session;
public class LabelManager {
private void deleteLabel(Long id) {
/*
* Load the object to be deleted
*/
Label label = getLabel(id);
/*
* We get the current session and delete the Label object from database.
*/
Session session = SessionFactoryHelper.getSessionFactory().getCurrentSession();
session.beginTransaction();
session.delete(label);
session.getTransaction().commit();
}
private Label getLabel(Long id) {
Session session = SessionFactoryHelper.getSessionFactory().getCurrentSession();
session.beginTransaction();
/*
* We get back Label object from database by calling the Session object
* get() method and passing the object type and the object id to be
* read.
*/
Label label = (Label) session.get(Label.class, id);
session.getTransaction().commit();
return label;
}
private void saveLabel(Label label) {
/*
* To save an object we first get a session by calling getCurrentSession()
* method from the SessionFactoryHelper class. Next we create a new
* transcation, save the Label object and commit it to database,
*/
Session session = SessionFactoryHelper.getSessionFactory().getCurrentSession();
session.beginTransaction();
session.save(label);
session.getTransaction().commit();
}
public static void main(String[] args) {
LabelManager manager = new LabelManager();
/*
* Creates a Label object we are going to stored in the database. We
* set the name, modified by and modified date information.
*/
Label label = new Label();
label.setName("Sony Music");
label.setModifiedBy("admin");
label.setModifiedDate(new Date());
/*
* Call the LabelManager saveLabel method.
*/
manager.saveLabel(label);
/*
* Read the object back from database.
*/
label = manager.getLabel(label.getId());
System.out.println("Label = " + label);
manager.deleteLabel(label.getId());
}
}
|