hibernate 的many to one 的问题IllegalArgumentException occurred while calling setter of hibernatePOJO

本文详细阐述了图书和类型模型的设计,包括属性定义、类结构以及与数据库映射的关系,旨在提供一种高效的数据组织方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.oyth.model;


public class Book {
private int BookID;
private String BookName;
private BookType BookType; //注意此处必须是一个类对象。
private String BookAuthor;
private float BookPrice = 0.0f;
private String BookMshu;
private int BookCcun;
private String BookImage;

public int getBookID() {
return BookID;
}
public void setBookID(int bookID) {
BookID = bookID;
}
public String getBookName() {
return BookName;
}
public void setBookName(String bookName) {
BookName = bookName;
}

public String getBookAuthor() {
return BookAuthor;
}
public void setBookAuthor(String bookAuthor) {
BookAuthor = bookAuthor;
}
public float getBookPrice() {
return BookPrice;
}
public void setBookPrice(float bookPrice) {
BookPrice = bookPrice;
}
public String getBookMshu() {
return BookMshu;
}
public void setBookMshu(String bookMshu) {
BookMshu = bookMshu;
}
public int getBookCcun() {
return BookCcun;
}
public void setBookCcun(int bookCcun) {
BookCcun = bookCcun;
}
public String getBookImage() {
return BookImage;
}
public void setBookImage(String bookImage) {
BookImage = bookImage;
}
public BookType getBookType() {
return BookType;
}
public void setBookType(BookType bookType) {
BookType = bookType;
}


}

booktype类。

package com.oyth.model;


import java.util.HashSet;
import java.util.Set;


import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;








public class BookType {

private Integer BookTypeID;
private String BookTypeName;
private Set<Book> books =new HashSet<Book>();;


public Integer getBookTypeID() {
return BookTypeID;
}
public void setBookTypeID(Integer bookTypeID) {
BookTypeID = bookTypeID;
}
public String getBookTypeName() {
return BookTypeName;
}
public void setBookTypeName(String bookTypeName) {
BookTypeName = bookTypeName;
}



public Set<Book> getBooks() {
return books;
}
public void setBooks(Set<Book> books) {
this.books = books;
}




}


Book.hbm.xml

<hibernate-mapping>
<class name="com.oyth.model.Book" table="Book">
<id name="BookID" type="int">
<column name="BookID" />
<generator class="native"></generator>
</id>
<property name="BookName" type="java.lang.String">
<column name="BookName" sql-type="varchar(50)" />
</property>



<many-to-one name="BookType" 
                     column="BookTypeID" 
                     class="com.oyth.model.BookType"
                     cascade="all"
                     outer-join="true"
                     lazy="false"/>   

<property name="BookAuthor" type="java.lang.String">
<column name="BookAuthor" sql-type="varchar(50)"  />
</property>
<property name="BookPrice" type="float">
<column name="BookPrice" sql-type="float(50)"  />
</property>
<property name="BookMshu" type="java.lang.String">
<column name="BookMshu" sql-type="varchar(50)"  />
</property>
<property name="BookCcun" type="int">
<column name="BookCcun" sql-type="int(20)"/>
</property>
<property name="BookImage" type="java.lang.String">
<column name="BookImage" sql-type="varchar(50)"  />
</property>
     

</class>


</hibernate-mapping>


BookType.hbm.xml

<hibernate-mapping>
<class name="com.oyth.model.BookType" table="booktype">
<id name="BookTypeID"  type="java.lang.Integer" >
<column name="BookTypeID"  />
<generator class="native"></generator>
</id>
<property name="BookTypeName"  >
<column name="BookTypeName" sql-type="varchar(50)"  />
</property>

<set name="books">
<key column="BookTypeID"></key>
<one-to-many class="com.oyth.model.Book"/>
</set>

</class>
</hibernate-mapping>



//出现上述问题的原因可能是由于在Book类中没有定义BookType类对象,注意查看@

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值