Hello, In 4.2.6.Final release the delete from CAT_PERSON is now ok. Thanks Brett. But I've got anohter problem with "map" mapping. Could you handle this case ?
Cat.hbm.xml : ... <map name="map" table="MAP"> <key column="CAT_KEY" /> <map-key type="java.lang.Integer"> <column name="MAP_KEY" /> </map-key> <element column="MAP_VALUE" type="java.lang.Integer" /> </map> ... Cat.java : public class Cat { ... private Map<Integer, Integer> map; ...
Java test : Person bob = new Person(); bob.setId(1l); bob.setFirstname("bob"); getCurrentSession().save(bob);
Cat felix = new Cat(); felix.setId(1l); felix.setName("felix"); Set<Person> owners = new HashSet<Person>(); owners.add(bob); felix.setOwners(owners);
felix.setMap(new HashMap<Integer, Integer>()); felix.getMap().put(1, 10); felix.getMap().put(2, 10); felix.getMap().put(3, 15); felix.getMap().put(4, 20);
getCurrentSession().save(felix);
Query query = getCurrentSession().createQuery("delete com.company.product.domain.Cat c where c.id=:param_id)"); query.setParameter("param_id", 1l); query.executeUpdate();
Generated SQL: insert into PERSON (FIRSTNAME, ID) values (?, ?) insert into CAT (NAME, ID) values (?, ?) insert into CAT_PERSON (ID_CAT, ID_PERSON) values (?, ?) insert into MAP (CAT_KEY, MAP_KEY, MAP_VALUE) values (?, ?, ?) insert into MAP (CAT_KEY, MAP_KEY, MAP_VALUE) values (?, ?, ?) insert into MAP (CAT_KEY, MAP_KEY, MAP_VALUE) values (?, ?, ?) insert into MAP (CAT_KEY, MAP_KEY, MAP_VALUE) values (?, ?, ?) delete from CAT_PERSON where (ID_CAT) in (select ID from CAT where ID=?) delete from CAT where ID=?
-> ConstraintViolationException: could not execute statement violation of FOREIGN KEY constraint "FK_DX9BH52S5F00VYW30I1M8F0FM" on table "MAP"
|