JPA,hibernate基于主键的一对一级联删除

我希望删除user的时候,把cmscompany给级联删除掉。以下是我的代码,两实体是基于主键的一对一关系,级联删除一直删除不了,找了
很多资料,都没办法。求大神们帮帮忙

 //User实体
 import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.Table;


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

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private Integer id;
    private String name;
    private CmsUserCompany cmsUserCompany;
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    @Column
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @OneToOne(fetch = FetchType.LAZY, cascade = { CascadeType.ALL },mappedBy="user")
    public CmsUserCompany getCmsUserCompany() {
        return cmsUserCompany;
    }
    public void setCmsUserCompany(CmsUserCompany cmsUserCompany) {
        this.cmsUserCompany = cmsUserCompany;
    }
}
 import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.MapsId;
import javax.persistence.OneToOne;

import javax.persistence.Table;

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

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private Integer id;
    private String name;
    private User user;
    @Id
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    @Column
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @MapsId
    @OneToOne
    @JoinColumn(name="userid")
    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user = user;
    }
}

可以参考一下 http://blog.csdn.net/nthack5730/article/details/45366537 Hibernate基于主键一对一映射操作实例

两个实体类随便一个放弃外键执行权,使用另一个实体类的dao操作试试。。