hibernate

java_one_to_one 2010-10-15 01:24:22
hibernate 能够发出sql语句,为什么数据库不能添加数据呢??
...全文
96 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
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吧

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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