2013-05-21 57 views
-1

我有一个自我连接类,我想保存一个父对象与孩子一起。为了实现我有:春天的java语法错误

型号

public class UserEntity implements Serializable { 

    @ManyToOne(cascade={CascadeType.ALL}) 
    @JoinColumn(name="checker_id") 
    private UserEntity checker; 

    @OneToMany(mappedBy="checker", orphanRemoval=true, cascade = CascadeType.ALL) 
    private Set<UserEntity> setters = new HashSet<UserEntity>(); 

    // getter and setter 


    public void addSetter(UserEntity setter) { 
    if(setters == null) { 

     setters = new HashSet<UserEntity>(); 
    } 
    setter.setChecker(this); 

    this.setters.add(setter); 

} 

这是DAO

public UserEntity create(UserEntity checker){ 

     List<UserEntity> list = new ArrayList(); 
     for(UserEntity setter : list) 
     checker.addSetter(setter); 

     if (checker != null) 
     sessionFactory.getCurrentSession().persist(checker); 
     return checker; 

我得到的错误

Syntax error on token "(", Expression expected after this token 

在该行

for(UserEntity setter : List<UserEntity>()) 

我希望知道DAO代码中缺少什么。

+0

请问这个问题涉及到春天?..这是所有关于Hibernate或者JPA,不是吗? –

回答

0

它应该是这样的

List<UserEntity> list = ... 

for(UserEntity setter : list) 
+0

谢谢。我在第一篇文章中修改了DAO代码。我遇到的问题是现在当我尝试保存父项。这两个孩子也被保存起来,但所有人都有一个id,而不是三个具有三个独特ID的不同行。实施有任何问题吗? – user2259555

+0

我想你应该有像@Id @GeneratedValue(strategy = GenerationType.IDENTITY)的东西,我在你的代码中找不到以及DB中的自动增量列。 – Alex

+0

@ user2259555如果您修改了代码,请修改您的整个问题。现在没有意义。 –