我无法在Hibernate中解决这个问题。这里是:我有一个产品,每个产品都有自己的领域等等。每个产品都可以是TopLevelProduct或SecondaryProduct。次级产品将与顶级产品相关联,顶级产品将与任何东西相关联。当我从数据库查询产品时,我想知道它是否是TopLevel。链接的次级产品清单可以稍后检索(甚至可以在之前检索,但并非如此)。Hibernate建模问题
我想用这个bean的:
public class Product{
...properties..
Product topLevelProduct;
...getters and setters...
}
的问题是,如果我映射topLevelProduct财产多到一,我已经删除顶级产品的问题。事实上,如果他们有一个链接到二次产品,我得到:
java.sql.BatchUpdateException: Cannot delete or update a parent row: a foreign key constraint fails (`jacciseweb`.`prodotti`, CONSTRAINT `FKC803BB11ACD3B812` FOREIGN KEY (`prodottoDiRiferimento_ID`) REFERENCES `prodotti` (`ID`))
我希望,如果我删除TopLevelProduct,该secondLevelProducts也将被删除。我应该使用不同的结构吗?也许使用来自同一个bean的两个bean?或逆转这样的关系:
public class Product{
...properties..
List<Product> secondLevelProducts = new ArrayList<Product>();
...getters and setters...
}
这无论如何给了我一个问题:我要使用另一个查询知道,如果该产品是次要的或不是,因为只知道它没有任何辅助产品,没有按”这意味着它是次要的,它甚至可能是没有secondLevel产品的顶级产品。
想法?
我现在想这个权利。问题是我必须每次在辅助bean中设置一个topLevelProduct时手动更新secondaryProducts。有没有办法做到这一点automagically? – gotch4 2011-02-11 13:59:00