Re: Problem Delete Hibernate
Can you post your hibernate related code? the code inside your ClientServiceImpl class.
Re: Problem Delete Hibernate
Here's it :
Code:
package tn.com.isamm.serviceImpl;
import java.util.List;
import tn.com.isamm.DaoImpl.ClientDaoImpl;
import tn.com.isamm.dao.ClientDao;
import tn.com.isamm.model.Client;
import tn.com.isamm.service.ClientService;
public class ClientServiceImpl implements ClientService{
ClientDaoImpl clientDaoImpl= new ClientDaoImpl();
@Override
public void ajouterClient(Client client) {
clientDaoImpl.ajouterClient(client);
}
@Override
public Client getClient(Integer cin) {
// TODO Auto-generated method stub
return clientDaoImpl.getClient(cin);
}
@Override
public void supprimerClient(Integer cin) {
clientDaoImpl.supprimerClient(cin);
}
@Override
public List<Client> listClient() {
// TODO Auto-generated method stub
return clientDaoImpl.listClient();
}
@Override
public void modifierClient(Integer cin) {
clientDaoImpl.modifierClient(cin);
}
}
and this clientDaoImpl :
Code:
package tn.com.isamm.DaoImpl;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import InterfaceSwing.ModifierClient;
import InterfaceSwing.SuppressionC;
import tn.com.isamm.dao.ClientDao;
import tn.com.isamm.model.Client;
import util.HibernateUtil;
public class ClientDaoImpl implements ClientDao {
@Override
public void ajouterClient(Client client) {
Session session=HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
session.save(client);
session.getTransaction().commit();
}
@Override
public Client getClient(Integer cin) {
Session session=HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Client client;
client=(Client) session.load(Client.class, cin);
System.out.println(client.getCin());
System.out.println(client.getNom());
System.out.println(client.getPrenom());
session.getTransaction().commit();
return client;
}
@Override
public void supprimerClient(Integer cin) {
Session session=HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Client client;
client=(Client) session.load(Client.class, cin);
session.delete(client);
session.getTransaction().commit();
}
@Override
public List<Client> listClient() {
Session session=HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
List list=session.createQuery("from Client").list();
session.getTransaction().commit();
return list;
}
@Override
public void modifierClient(Integer cin) {
Session session=HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
// String hql="update Client set nom=:newName where cin="+cin;
// Query query=session.createQuery(hql);
// query.setString("newName", "ghazi");
// query.executeUpdate();
Client client=(Client) session.load(Client.class, cin);
System.out.println("entree");
client.setNom(ModifierClient.textField_1.getText());
session.update(client);
client.setPrenom(ModifierClient.textField_2.getText());
session.update(client);
client.setAdresse(ModifierClient.textField_3.getText());
session.update(client);
client.setEtat(ModifierClient.comboBox_1.getSelectedItem().toString());
session.update(client);
client.setTelephone(Integer.parseInt(ModifierClient.textField_5.getText()));
session.update(client);
System.out.println("sortie");
session.getTransaction().commit();
}
}
Thanks for answer
Re: Problem Delete Hibernate
Are there any tables that have a foreign key to your client table?
That's where I woudl look.
Re: Problem Delete Hibernate
yes.
there is reservation table and this is its structure :
Code:
CREATE TABLE IF NOT EXISTS `reservation` (
`MATRICULE` int(11) NOT NULL,
`CIN` int(11) DEFAULT NULL,
`DATEDEBUT` varchar(255) DEFAULT NULL,
`DATEFIN` varchar(255) DEFAULT NULL,
PRIMARY KEY (`MATRICULE`),
KEY `FK2328D7ACC02AEED0` (`CIN`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Re: Problem Delete Hibernate
There you go.
You can't delete a Client row without possibly invalidating that foreign key.
You'll need to nullify or remove those 'reservations' first.
Re: Problem Delete Hibernate
i found the solution which is adding cascade='delete'
thank u
Re: Problem Delete Hibernate
I didn't want to suggest since I noticed that 'null' was a valid value for the foreign key.