Hello,
I need to see how can I delete an object in Hibernate? I mean an example to delete from database in Hibernate. Delete query criterion is required.
Thanks.
Printable View
Hello,
I need to see how can I delete an object in Hibernate? I mean an example to delete from database in Hibernate. Delete query criterion is required.
Thanks.
Try this:
Code:import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class DeleteHQLExample {
/**
*
Criteria Query Example
*
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Session sess = null;
try {
SessionFactory fact = new
Configuration().configure().buildSessionFactory();
sess = fact.openSession();
String hql = "delete from
Insurance insurance where id = 2";
Query query = sess.createQuery(hql);
int row = query.executeUpdate();
if (row == 0){
System.out.println("Doesn'
t deleted any row!");
}
else{
System.out.println("Deleted
Row: " + row);
}
sess.close();
}
catch(Exception e){
System.out.println(e.getMessage());
}
}
}
Hey have a look at this:
example:
Code: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());
}
}
Thanks for the quick reply.
I am trying the suggestion right away.
i have run the similar code but it has given an out put of null and delete operation is not reflected to database too
here is my code
package roseindia.tutorial.hibernate;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class DeleteExample {
public static void main(String[] args) {
Session session=null;
try
{
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
//System.out.println("SessionFactory IS:"+sessionFactory);
session =sessionFactory.openSession();
// System.out.println("Session IS:"+session);
String hql="delete from Contact where id=5";
//System.out.println("HQL IS:"+hql);
Query query=session.createQuery(hql);
int row=query.executeUpate();
//System.out.println(row);
if(row==0)
{
System.out.println("fail to perform operation");
}
else
{
System.out.println(row+"row deleted sucessfully");
}
session.close();
}catch(Exception e)
{
System.out.println(e.getMessage());
}
}
}
can any one help greatly appriciated