Hi everyone!

j'ai vu plusieurs topics relatifs à mon problème mais je n'y ai pas vu de réponses bien satisfaisantes qui puissent m'aider...

Je m'explique: J'ai 2 tables 'Contact' et 'Customer' qui sont liées par une table jointure contenant les 2 clés primaires des deux tables citées.

Mon but est de vouloir supprimer de la BD un contact. Mais il n'est pas content parce que ça revient à mettre un contactNo à NULL dans la table de jointure.

Et pourtant avant de détruire le contact, je prends bien soin à le détacher de ses 'customer' et inversement.

Le code de comment est fait la liaison entre 'contact' et 'customer' :
du coté de 'Contact'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
/**
         * To make the link between Customer and Contact.
         * 
         */
	@ManyToMany(mappedBy = "contacts", fetch = FetchType.LAZY)
	@OrderBy(value = "name ASC")
	private Set<Customer> customers = new HashSet<Customer>();
du coté de 'Customer'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
      /**
         * To make the link between Customer and Contact.
         */
	@ManyToMany(fetch = FetchType.LAZY)
	@JoinTable(name = "CustomerContact", schema = "correspondenceConfig", 
			joinColumns = { @JoinColumn(name = "customerNo") }, 
			inverseJoinColumns = { @JoinColumn(name = "contactNo") })		
	private Set<Contact> contacts = null;
et le code du Delete
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
/**
         * Delete Contact. Erase a contact from the database
         */
	public String deleteContact() {
 
		setDeletedMode(true);
		List<Customer> tmp = getContextContact().getCustomersAsList();
 
		    for (Customer c : tmp) {
 
				Iterator<Contact> it = c.getContacts().iterator();
 
		             Contact tmp = new Contact();
 
		           while (it.hasNext()) {
			         tmp = it.next();
			        if (tmp.getContactNo().equals(getContextContact().getContactNo())) {
				    it.remove();
 
		        }
 
	           }
		           customerManager.saveCustomer(c);
			}
 
 
		    getContextContact().getCustomers().clear();
			contactManager.saveContact(getContextContact());
//	---------------------------------------------
		contactManager.deleteContact(getContextContact());
		return "cContact";
	}
Voilà le souci...Aidez la cheerleader si vous êtes gentils =) Merci d'avance.