【发布时间】:2011-10-09 02:01:04
【问题描述】:
在编写书店应用程序时,我需要为 Book 和 Publisher 类放置映射。
Book 与 Publisher 具有 n 对 1 关系。与 Author 也具有 n 对 1 关系。 我想为管理员用户提供删除书籍、作者或出版商的选项。
没有书的出版商是没有意义的。作者也是如此。如果出版商的所有书都被删除,出版商必须从数据库中删除。 如果一个作者的所有书籍都被删除,该作者也应该被删除。 听起来像是 delete-orphan 级联。但是多对一映射不支持 delete-orphan 。
另外,如果我删除一个出版商,他的所有书籍都应该被删除。 同样,删除作者应该删除他的所有书籍。
目前,我的 Author、Publisher 和 Book 类定义如下, 这本书有字段作者和出版商。但是,作者或出版商,没有参考他们的书。 我必须重新定义这些类吗? 我应该如何映射 Book 和 Publisher 之间的关系?
任何帮助表示赞赏
public class Book {
private Long bookId;
private Author author;
private Publisher publisher;
...
}
public class Publisher {
private Long publisherId;
private String name;
}
public class Author {
private Long authorId;
private String name;
}
<class name="Book" table="BOOKS">
<id name="bookId" column="BOOKID" type="long">
<generator class="native"/>
</id>
...
<many-to-one name="publisher" class="Publisher" column="PUBLISHERID" lazy="false" cascade="save-update"/>
...
【问题讨论】: