[
http://opensource.atlassian.com/projects/hibernate/browse/HHH-3334?page=c...
]
Gail Badner commented on HHH-3334:
----------------------------------
Wallace, I think your issue is related to HHH-2269, but it doesn't look like the patch
fixes the that issue.
There is a test case that reproduces HHH-2269:
org.hibernate.test.cascade.BidirectionalOneToManyCascadeTest.testSaveOrphanDeleteChildWithParentFailureExpected
When I ran the unit tests using the patch, this test still fails using HSQLDB and MySQL.
Does it fail when you run your unit tests?
Cascading breaks if parent table doesn't have Auto-inc
------------------------------------------------------
Key: HHH-3334
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-3334
Project: Hibernate3
Issue Type: Bug
Components: core
Affects Versions: 3.2.4.sp1, 3.2.5, 3.2.6, 3.3.0.CR1
Environment: tested on MySql, and hibernate versions (with annotations) v3.2.4 to
3.3.0CR1
Reporter: Wallace Wadge
Attachments: AbstractSaveEventListener.java
(reposting here from forum)
Consider:
- a table with an assigned PK (i.e. not auto-increment), let's call this
"A"
- Another table ("B") linked to the table listed above but with it's PK set
to auto-increment.
Now if you try to save B with cascading switched on, it will break. From the little
debugging I've done it looks like:
a) hibernate detects that A needs to be saved first, but puts it into some sort of
queue.
b) when it hits B, it short-circuits this save queue and tries to save B immediately so
as to obtain a PK reference for B. This fails since A hasn't been yet been saved so
it's link is still null.
Schema used is listed below (MySQL):
----
CREATE DATABASE `jira` /*!40100 DEFAULT CHARACTER SET latin1 */;
DROP TABLE IF EXISTS `jira`.`parent`;
CREATE TABLE `jira`.`parent` (
`parent_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`parent_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `jira`.`child`;
CREATE TABLE `jira`.`child` (
`child_id` int(10) unsigned NOT NULL auto_increment,
`parent_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`child_id`),
KEY `FK_child_1` (`parent_id`),
CONSTRAINT `FK_child_1` FOREIGN KEY (`parent_id`) REFERENCES `parent` (`parent_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira