Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Spring进行Hibernate 4实体映射_Spring_Hibernate - Fatal编程技术网

使用Spring进行Hibernate 4实体映射

使用Spring进行Hibernate 4实体映射,spring,hibernate,Spring,Hibernate,我有两个实体类,如下所示: @Entity @Table(name = "USER_ACCT") public class UserAccount implements Serializable{ private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="USER_ACCT_ID_SEQ") @SequenceGenerat

我有两个实体类,如下所示:

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

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="USER_ACCT_ID_SEQ")
@SequenceGenerator(name="USER_ACCT_ID_SEQ", sequenceName="USER_ACCT_ID_SEQ")
@Column(name = "USER_ACCT_ID")
protected Long id;

@Basic(optional = false)
@Column(length = 50, unique = true)
private String username;

@Basic(optional = false)
@Column(length = 128, nullable = false)
private String password;

@ManyToMany(targetEntity = UserPermission.class)
@JoinTable(name = "USER_ACCT_PERM",
        joinColumns         = @JoinColumn(name = "USER_ACCT_ID"),
        inverseJoinColumns  = @JoinColumn(name = "USER_PERM_ID", referencedColumnName = "USER_PERM_ID"))
private Set<UserPermission> permissions;

// getters and setters...
}
现在,当我创建UserAccount的对象并尝试使用会话工厂保存它时,会出现以下错误:

org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.rpm.domain.UserPermission
UserPermission类不应该自己保存吗?? 这是用于持久化的代码:

@Transactional
    public void addUser(){
                Set<UserPermission> permissions = new HashSet<UserPermission>();
    permissions.add(new UserPermission("ROLE_ADMIN"););
        sessionFactory.getCurrentSession().save(new UserAccount("admin", "d033e22ae348aeb5660fc2140aec35850c4da997", permissions));
    }
@Transactional
public void addUser(){
Set permissions=new HashSet();
添加(新用户权限(“角色管理”);
保存(新用户帐户(“管理员”,“d033e22ae348aeb5660fc2140aec35850c4da997”,权限));
}

除非您指定了级联选项,否则不会

除非您指定级联选项,否则不会

也许,如果您发布用于创建和持久化实体的代码,我们可以更好地帮助您。如果您发布用于创建和持久化实体的代码,我们可以更好地帮助您
@Transactional
    public void addUser(){
                Set<UserPermission> permissions = new HashSet<UserPermission>();
    permissions.add(new UserPermission("ROLE_ADMIN"););
        sessionFactory.getCurrentSession().save(new UserAccount("admin", "d033e22ae348aeb5660fc2140aec35850c4da997", permissions));
    }