hibernate

java_one_to_one 上海众恒产业股份有限公司 程序员  2010-10-15 01:24:22
hibernate 能够发出sql语句,为什么数据库不能添加数据呢??
...全文
75 点赞 收藏 16
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
java_one_to_one 2010-10-15
回复
java_one_to_one 2010-10-15
运行结果还是一样的,不行啊?
回复
java_one_to_one 2010-10-15
[Quote=引用 13 楼 svendota 的回复:]
ptdl.addObject(p);
ptdl.addObject(p1);
试试
[/Quote]
这个什么意思啊
回复
SvenDota 2010-10-15
ptdl.addObject(p);
ptdl.addObject(p1);
试试
回复
java_one_to_one 2010-10-15
Hibernate: insert into ProductType (tname) values (?)
Hibernate: insert into Product (pname, pprice, number, ptid) values (?, ?, ?, ?)
Hibernate: insert into Product (pname, pprice, number, ptid) values (?, ?, ?, ?)
pts:1
pts:1
回复
java_one_to_one 2010-10-15
没有报错,也产生了id
回复
liufeng0209 2010-10-15
你关联的ProductType 并没有先保存,故没有ProductType的id,所以无法建立关联
回复
Marty束 2010-10-15
有没有报错
回复
java_one_to_one 2010-10-15

public class ProductTypeDaoImpl extends BaseDaoImpl implements ProductTypeDao {

}

public class BaseDaoImpl {

//添加对象
public void addObject(Object o){
Session session=MyHibernateSessionFactory.openSession();
session.saveOrUpdate(o);
}

//修改对象
public void updateObject(Object o){
Session session=MyHibernateSessionFactory.openSession();
session.update(o);
}

//删除对象
public void delObject(Object o){
Session session=MyHibernateSessionFactory.openSession();
session.delete(o);
}

//单个查询
public Object findObjectById(Class c,int id){
Session session=MyHibernateSessionFactory.openSession();
Object o=session.get(c, id);
return o;
}

//查询所有
public List findObjectByAll(Class c){
Session session=MyHibernateSessionFactory.openSession();
List list=session.createCriteria(c).list();
return list;
}
回复
liufeng0209 2010-10-15
贴ProductTypeDaoImpl.java吧
回复
java_one_to_one 2010-10-15
代码是这样的
ProductTypeDaoImpl ptdl=new ProductTypeDaoImpl();
Session session=new Configuration().configure().buildSessionFactory().openSession();
session.beginTransaction();

ProductType pt=new ProductType();
pt.setTname("烟酒");

Product p=new Product();
p.setNumber(10);
p.setPname("白沙");
p.setPprice(5.0);
p.setProducttype(pt);

Product p1=new Product();
p1.setNumber(10);
p1.setPname("精品白沙");
p1.setPprice(10.0);
p1.setProducttype(pt);

pt.getProducts().add(p);
pt.getProducts().add(p1);

ptdl.addObject(pt);

System.out.println("pts:"+pt.getTid());
session.getTransaction().commit();
session.close();
producttype配置文件:
<class name="com.accp.entity.ProductType" table="ProductType">
<id name="tid" type="java.lang.Integer">
<column name="tid" />
<generator class="native" />
</id>
<property name="tname" type="java.lang.String">
<column name="tname" length="50" not-null="true" />
</property>
<set name="products" cascade="all" inverse="true">
<key column="ptid"></key>
<one-to-many class="com.accp.entity.Product"/>
</set>
</class>
product配置文件
<class name="com.accp.entity.Product" table="Product" >
<id name="pid" type="java.lang.Integer">
<column name="pid" />
<generator class="native" />
</id>
<property name="pname" type="java.lang.String">
<column name="pname" length="50" not-null="true" />
</property>
<property name="pprice" type="java.lang.Double">
<column name="pprice" scale="4" not-null="true" />
</property>
<property name="number" type="java.lang.Integer">
<column name="number" not-null="true" />
</property>
<many-to-one name="producttype" class="com.accp.entity.ProductType" column="ptid"></many-to-one>
</class>
还请各位大侠帮助啊,谢谢
回复
liufeng0209 2010-10-15
贴代码
回复
java_one_to_one 2010-10-15
你们说的我都写过了啊
回复
小武茶庄 2010-10-15
事务的影响!
回复
fafi09 2010-10-15
没有commit吧
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2010-10-15 01:24
社区公告
暂无公告