2013-05-21 59 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如果您修改了代碼,請修改您的整個問題。現在沒有意義。 –