Hibernate many to one 的问题

zxianrong 2007-08-09 08:22:47
怎么找也找不出错误啊
请各位高手帮忙
代码如下
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)








...全文
250 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
kongxuzhoumo0 2007-10-29
  • 打赏
  • 举报
回复
src下加一个log4j.properties文件
还有你的属性和表里面的不对应

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧