Hibernate many to one 的问题
怎么找也找不出错误啊
请各位高手帮忙
代码如下
package com.zhuang;
import java.sql.Date;
public class Order {
private int id;
private double price;
private Date date;
private User user;
public Order(){}
public Order(double price ,User user){
this.price=price;
this.user=user;
}
public int getId() {
return id;
}
private void setId(int id) {
this.id = id;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public void setUser(User user){
this.user=user;
}
public User getUser(){
return user;
}
}
package com.zhuang;
import java.util.HashSet;
import java.util.Set;
public class User {
private int id;
private String username;
private int password;
private Set orders=new HashSet();
public User(String username,int password,Set orders){
this.username=username;
this.password=password;
this.orders=orders;
}
public User(){}
public void setOrders(Set orders){
this.orders=orders;
}
public Set getOrders(){
return orders;
}
public int getId() {
return id;
}
private void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getPassword() {
return password;
}
public void setPassword(int password) {
this.password = password;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class name="com.zhuang.Order" table="ORDERTABLE" >
<id name="id" column="ID">
<generator class="uuid.hex"/>
</id>
<property name="price" column="PRICE" type="double"></property>
<property name="date" column="DATE" type="date"></property>
<!-- <many-to-one name="user"
column="USERID"
class="com.zhuang.User"
cascade="all"
not-null="true"></many-to-one>
-->
</class>
</hibernate-mapping>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class name="com.zhuang.User" table="USERTABLE">
<id name="id" column="ID">
<generator class="uuid.hex"/>
</id>
<property name="username" column="USERNAME" type="string" ></property>
<property name="password" column="PASSWORD" type="int" ></property>
<set name="orders"
cascade="save-update"
inverse="true">
<key column="USERID"/>
<one-to-many class="com.zhuang.Order"/>
</set>
</class>
</hibernate-mapping>
package com.Test;
import java.sql.Date;
import java.util.HashSet;
import java.util.List;
import com.zhuang.*;
import net.sf.*;
import net.sf.hibernate.*;
import net.sf.hibernate.cfg.Configuration;
public class Test {
public static void main(String []args){
try{
SessionFactory sf;
Configuration config=new Configuration();
sf=config.configure().buildSessionFactory();
Session session=sf.openSession();
Transaction tr=session.beginTransaction();
System.out.println("aaaaaaaaaaaaaaaaaaaaaaaa");
User user=(User)session.get(User.class, 2);
Order order1=new Order();
order1.setUser(user);
user.getOrders().add(order1);
session.update(user);
tr.commit();
System.out.println("bbbbbbbbbbbbbbbbbbbbbbbb");
session.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
}
出现错误
log4j:WARN No appenders could be found for logger (net.sf.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
aaaaaaaaaaaaaaaaaaaaaaaa
Hibernate: select user0_.ID as ID0_, user0_.USERNAME as USERNAME0_, user0_.PASSWORD as PASSWORD0_ from USERTABLE user0_ where user0_.ID=?
Hibernate: select orders0_.USERID as USERID__, orders0_.ID as ID__, orders0_.ID as ID0_, orders0_.PRICE as PRICE0_, orders0_.DATE as DATE0_ from ORDERTABLE orders0_ where orders0_.USERID=?
Hibernate: update ORDERTABLE set PRICE=?, DATE=? where ID=?
net.sf.hibernate.HibernateException: SQL insert, update or delete failed (row not found)
at net.sf.hibernate.impl.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:25)
at net.sf.hibernate.persister.EntityPersister.update(EntityPersister.java:661)
at net.sf.hibernate.persister.EntityPersister.update(EntityPersister.java:621)
at net.sf.hibernate.impl.ScheduledUpdate.execute(ScheduledUpdate.java:52)
at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2449)
at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2435)
at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2393)
at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2261)
at net.sf.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:61)
at com.Test.Test.main(Test.java:62)