我面对的使用Hibernate的一个问题。我有3个表:tb_user,tb_book,tb_lending。在tb_lending,我有以下字段:Hibernate映射问题的一个一对一/多对一的一个
- id_lending - INT(11) - 主键
- id_user - INT(11) - 外键
- id_book - INT(11) - 国外键
我也有豆代表表(tb_user和tb_book正在完美工作)。
我tbLending.hbm.xml映射这一领域:
<id name="id" type="java.lang.Integer">
<column name="id_lending" />
<generator class="identity" />
</id>
<many-to-one name="userId" class="com.wa2011.beans.UserBean"
not-null="true" cascade="all" unique="true" column="id_user" />
<many-to-one name="bookId" class="com.wa2011.beans.BookBean"
not-null="true" cascade="all" unique="true" column="id_book" />
从业务逻辑的关联应该是一个对一个,因为每个id_lending我可以有1个用户和1本书。但我通过这种方式阅读了一些论坛,使用多对一的方式,然后声明unique =“true”。
但是,当我执行query.save我得到以下错误:
坟墓抛出:IllegalArgumentException类:com.wa2011.beans.UserBean,财产的getter方法:ID
我真的不知道自tb_book和tb_user以来的问题是什么,就像我在工作之前所说的那样是一种魅力。
在LendingBean.java的保存方法是:
public void saveLend(LendingBean lendingBean) {
Session session = iniHibernate();
try {
session.beginTransaction();
session.save(lendingBean);
session.getTransaction().commit();
} catch (Exception e) {
System.out.println("Error on registering lend:");
System.out.println(e);
}
}
此方法由processRequest方法,我与其他豆类/ servlet的千篇一律内的servlet LendingActions调用。
<class name="com.wa2011.beans.LendingBean" table="tb_lending" catalog="wa2011">
<id name="id" type="java.lang.Integer">
<column name="id_lending" />
<generator class="identity" />
</id>
...
</class>
在LeandingBean.java我:
@Stateless
public class LendingBean {
private Integer id;
private Integer bookId;
private Integer userId;
...
}
你能帮助我,好吗?
在此先感谢。
你可以把你节省操作码? – nIKUNJ 2011-04-13 13:22:34
当然!已经做了。如果您需要更多信息,请告诉我。非常感谢。 – LucasM 2011-04-13 13:27:56