2016-03-21 9 views
0

i ein EJB-Modul haben, die mit Hibernate ORM läuft, habe ich zwei POJO für das Modell, hier die erste Klasse:Problem mit 0.59 Mapping löschen

@Entity 
public class Vehicle implements Serializable { 

private static final long serialVersionUID = 1L; 
private Integer id; 


public Vehicle() { 

} 

@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
public Integer getId() { 
    return id; 
} 

public void setId(Integer id) { 
    this.id = id; 
} 

} 

und dies ist meine zweite Klasse:

@Entity 
public class Transfer implements Serializable { 

private static final long serialVersionUID = 1L; 
private Integer id; 
private Vehicle vehicle;  
public Transfer() { 
} 
@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
public Integer getId() { 
    return id; 
} 
public void setId(Integer id) { 
    this.id = id; 
} 
@OneToOne 
public Vehicle getVehicle() { 
    return vehicle; 
} 
public void setVehicle(Vehicle vehicle) { 
    this.vehicle = vehicle; 
} 
} 

jetzt wHE ich versuche, ein Fahrzeug v1 Instanz zu löschen ich habe diesen Fehler:

Cannot delete or update a parent row: a foreign key constraint fails (`pallasmobiledb`.`transfer`, CONSTRAINT `FK_9u0s4qxviu868ir3r7sgtbuqa` FOREIGN KEY (`cpo_id`) REFERENCES `user` (`id`)) 

kann jemand sagen, was falsch in meinem Mapping-Mechanismus ist?

Antwort

0

Beim Entfernen eines Fahrzeugs, da es sich um eine Eins-zu-eins-Zuordnung handelt, wird das Übertragungsobjekt ebenfalls gelöscht. Sie löschen die Entität "Fahrzeug", und Ihre Eins-zu-Eins-Verbindung befindet sich auf "Übertragung". Zwei Möglichkeiten:

1 - Löschen Sie das Übertragungsobjekt, bevor Sie das Fahrzeug löschen.

2 - Sie müssen den Löschvorgang auf die andere Entität kaskadieren. Anmerken Ihre @OneToOne wie folgt aus:

@OneToOne(cascade = CascadeType.ALL) 

BUT auf „Fahrzeug“ Einheit ... Sie haben Ihre Zuordnung ändern

+0

thnaks Pras für Ihre schnelle Antwort, aber ich will, dass ich ein Fahrzeug löschen, ohne das Löschen Übertragung, und ich muss die Zuordnung in der Übertragungseinheit nicht in der Fahrzeugeinheit tun, kann ich? –