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

时间:2025-03-19 21:17:29
package ;


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 ;


import ;
import ;


import ;
import ;
import ;
import ;








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) {
= books;
}




}


<hibernate-mapping>
<class name="" table="Book">
<id name="BookID" type="int">
<column name="BookID" />
<generator class="native"></generator>
</id>
<property name="BookName" type="">
<column name="BookName" sql-type="varchar(50)" />
</property>



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

<property name="BookAuthor" type="">
<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="">
<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="">
<column name="BookImage" sql-type="varchar(50)"  />
</property>
     

</class>


</hibernate-mapping>



<hibernate-mapping>
<class name="" table="booktype">
<id name="BookTypeID"  type="" >
<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=""/>
</set>

</class>
</hibernate-mapping>



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