hibernate一对多添加dao层中的save方法不执行

这是dao层中的方法

    // 增加设备
    @Override
    public void addDevice(Device device) {

        try {
            String hql = "from User u where u.userName=?";
            Query query = sessionFactory.getCurrentSession().createQuery(hql);
            query.setString(0, device.getOwnerName());
            User u = (User) query.uniqueResult();
            Device device1 = new Device();
            device1.setDeviceId(device.getDeviceId());
            device1.setDeviceName(device.getDeviceName());
            device1.setOwnerName(device.getOwnerName());
            device1.setDeviceOwner(u.getRealName());
            device1.setUser(u);
            sessionFactory.getCurrentSession().save(device1);
        } catch (Exception e) {
            System.out.println(e);
        }
    }

这是设备实体类

 package com.plb.entities;

import java.io.Serializable;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.hibernate.annotations.GenericGenerator;

@Entity
@Table(name="T_DEVICE")
public class Device implements Serializable{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(generator = "system-uuid")
    @GenericGenerator(name = "system-uuid", strategy = "uuid")
    @Column(length = 32)
    private String deviceId;//设备Id

    @Column(length = 32)
    private String deviceName;//设备名称

    @Column(length=32)
    private String deviceOwner;//设备所有者

    @Column(length = 32)
    private String ownerName;//设备所有着账号

    //Device对象的ownerName和User对象的userName字段相关联,

     @ManyToOne(cascade = CascadeType.ALL, optional = false)
     @JoinColumn(name="ownerName", referencedColumnName="userName",insertable=false,updatable=false)
     private User user;

    public String getDeviceId() {
        return deviceId;
    }
    public void setDeviceId(String deviceId) {
        this.deviceId = deviceId;
    }
    public String getDeviceName() {
        return deviceName;
    }
    public void setDeviceName(String deviceName) {
        this.deviceName = deviceName;
    }

    public String getOwnerName() {
        return ownerName;
    }
    public void setOwnerName(String ownerName) {
        this.ownerName = ownerName;
    }
    public String getDeviceOwner() {
        return deviceOwner;
    }
    public void setDeviceOwner(String deviceOwner) {
        this.deviceOwner = deviceOwner;
    }
    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user = user;
    }


}

这是用户实体类

 package com.plb.entities;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

import org.hibernate.annotations.GenericGenerator;

@Entity
@Table(name = "T_USER")
public class User implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(generator = "system-uuid")
    @GenericGenerator(name = "system-uuid", strategy = "uuid")
    @Column(length = 32)
    private String userId;
    /*
     * @Column(length=32) private String uId;//用于和device的deviceId相关联的字段,此处不用主键关联
     */
    /*
     * @OneToMany(mappedBy="user",cascade =
     * CascadeType.ALL,fetch=FetchType.EAGER) private List<Device> device = new
     * ArrayList<Device>();
     */

    /*
     * @OneToMany //指定一对多关系
     * 
     * @Cascade(value={CascadeType.SAVE_UPDATE}) //设定级联关系
     * 
     * @JoinColumn(name="userId") private List<EmployeeBean2> emp = new
     * HashSet<EmployeeBean2>();
     */
    @Column(length = 32)
    private String userName;

    @Column(length = 32)
    private String password;

    @Column(length = 32)
    private String realName;

    @Column(length = 32)
    private String sex;

    @Column(length = 32)
    private String age;

    @Column(length = 32)
    private String email;

    @Column(length = 32)
    private String tel;

    @Column(length = 32)
    private String remark;

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getRealName() {
        return realName;
    }

    public void setRealName(String realName) {
        this.realName = realName;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }
}

一个用户对应多个设备,前台传给后台一个设备id(deviceID)、设备名字(deviceName)用户账号(ownerName)和设备所有者(deviceOwner),之后根据用户账号ownerName从从用户表中查询出一个User对象user,之后再把设备Id,设备名称,用户(user)传递到新建的设备对象device1中,Debug后台所有的数据都能获得值,就是sessionFactory.getCurrentSession().save(device1)方法不执行,既不报错也不抛异常,请求各位帮忙看看。

在保存过程中不是要提交事务的么

//Device对象的ownerName和User对象的userName字段相关联,

 @ManyToOne(cascade = CascadeType.ALL, optional = false)
 @JoinColumn(name="ownerName", referencedColumnName="userName",insertable=false,updatable=false)
 private User user;

这块的,insertable=false,updatable=false 应该是=ture的吧