hibernate hibernate 能够发出sql语句,为什么数据库不能添加数据呢?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 代码是这样的 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>还请各位大侠帮助啊,谢谢 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; } 你关联的ProductType 并没有先保存,故没有ProductType的id,所以无法建立关联 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:1pts:1 ptdl.addObject(p);ptdl.addObject(p1);试试 Java web中如何弹出对话框 求高人指点,webEQApplet.jar怎么使用啊! SSH开发新闻发布网站 在SSH 项目中用过FCK 的进来下 避免防止攻击1个页面, 江湖救急!!!!!!! 为什么找不到javax/servlet/http/HttpServlet? 【求经验】,【求分享】系统后台显示左边菜单栏 struts 与 ocx控件(100 分) 如何实现用email将指定文件发送给用户?? 在线java反编译 [help]html写文件的问题 字符串处理问题
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>
还请各位大侠帮助啊,谢谢
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;
}
Hibernate: insert into Product (pname, pprice, number, ptid) values (?, ?, ?, ?)
Hibernate: insert into Product (pname, pprice, number, ptid) values (?, ?, ?, ?)
pts:1
pts:1
ptdl.addObject(p1);
试试