pojo:
Book:
public class Book implements java.io.Serializable { // Fields private Integer bookId;
private Category category;
private String bookName;
private String author;
private String publishCompany;
private Date publishDate;
private String description;
private String imageUrl;
private String bookKey;
private Integer viewtimes;
private Set favoriteses = new HashSet(0);
private Set items = new HashSet(0);
private Set bookreviews = new HashSet(0);下面是set(),get()方法
User:
public class User implements java.io.Serializable { // Fields private String email;
private String userName;
private String password;
private String phone;
private String address;
private String zip;
private String sex;
private String name;
private Date regTime;
private Integer loginTimes;
private Integer level;
private Set bookreviews = new HashSet(0);
private Set orders = new HashSet(0);
private Set favoriteses = new HashSet(0);
下面是set(),get()方法bookreview:
public class Bookreview implements java.io.Serializable { // Fields private Integer id;
private Book book;
private User user;
private String title;
private String content;
private Date time;
下面是set(),get()方法问题是这样的:想向bookreview表中插入数据,我是这样写的:
...........
............
Bookreview bookreview = new Bookreview();
 bookreview.setBook(book);  bookreview.setUser(user);
bookreview.setTitle(title);
bookreview.setTime(time);
bookreview.setContent(content);
session.save(bookreview);
transaction.commit();
session.close();
执行没有错误,可是查看数据库表中无记录。数据库是Mysql
最好给点这方面的例子

解决方案 »

  1.   

    首先楼主你的变量都没定义值,你想直接拿来就存吗?如果你想从输入中获取数据存放到你的session中,你没有actionform的继承类,就不能把获取的数据返回一个form表单如果楼主写了,但没有贴出来,那你的
    Bookreview bookreview = new Bookreview(); 
    bookreview.setBook(bookform.getbook()); bookreview.setUser(bookform.getuser()); 
    ...........
    ........
    ......
    ...
    个人建议封装form表单和获取表单存放数据库分2个类写,不建议直接获取form表单
      

  2.   

    把在java程序中要执行的sql语句copy到数据库查询看有没有记录
      

  3.   

    首先建议你把hibernate.cfg.xml中的属性show-sql=true
    然后把你插入数据库中的一段代码用
    try{}catch{}
    括起来
    另外你的事务处理在那里开始的?
    代码里面保存的内容是否都正确
    这些可以验证的先验证下首先怀疑是抛异常了
      

  4.   

    执行没有错误,数据库又没有值.
    通常是事务没有正确定义或者
    没有提交.你把hql打开,看看,有没有insert语句,有就是这个问题了.
    还有就是你的Bookreview类里的User和Book属性,在数据库字段中是怎么定义的.
    假设User和Book两张表都定义id字段为主键(有没有定义主键?)
    那bookreview里要有两个字段分别保存user和book的主键
    hibernate相关配置:
    user.hbm.xml:
    <many-to-one name="user" column="user" class="包路径.User"/>
    希望对你有帮助
      

  5.   

    这样做了,也有insert语句,还是不行,希望给点这方面的例子
      

  6.   


    有了try{}catch(){}不报异常?~~~
      

  7.   

    问题终于解决了。主要原因是Transcation在其它文件定义的,在这里调用,不行。后来直接改成Transcation tx=session.began...();  好了
    谢谢各位。