2011-12-10 25 views
2

我刚刚阅读了关于CRUD系统的PlayFramework,并决定编写一个简单的例子,只有两个类GroupUser,并决定很多用户可以在一个组中,但一个用户可以只是在一个组中。所以,我用它ManyToOneOneToMany anotations,请看看下面的代码:PlayFramework:CRUD和排序列表

package models; 

import play.db.jpa.Model; 

import javax.persistence.Entity; 
import javax.persistence.ManyToOne; 

/** 
* @author sergiizagriichuk 
*/ 
@Entity 
public class User extends Model { 
    public String firstName; 
    public String lastName; 

    @ManyToOne 
    public Group group; 

    @Override 
    public String toString() { 
     return firstName; 
    } 
} 

package models; 

import play.db.jpa.Model; 

import javax.persistence.Entity; 
import javax.persistence.OneToMany; 
import javax.persistence.OrderBy; 
import java.util.List; 

/** 
* @author sergiizagriichuk 
*/ 
@Entity 
public class Group extends Model { 
    public String groupName; 
    public String groupDescription; 
    @OneToMany 
    @OrderBy("firstName desc") 
    public List<User> users; 

} 

对于排序我试着使用OrderBy标注,并作为结果什么:(,我有额外的排序模式的用户列表中,但我通过firstName想秩序,有人能解释我如何使用使用控制器友好的CRUD模式对列表进行排序? 感谢。

回答

0

是否尝试在用户列表中添加mappedBy属性?

@OneToMany(mappedBy="group") 
+0

在这种情况下,用户刚刚从编辑窗体中删除的列表,它不是我的解决方案。 –

+0

我不知道我明白它造成了什么问题,但在休眠时,您需要指定关系的所有者..也不确定它是否有所作为,但我总是看到“DESC”(带大写字母) – mericano1

+1

如果列表变空,这是因为您需要在保存之前设置用户组字段。如果不添加“mappedBy”属性,hibernate会生成一个额外的表,因为它不知道“users”和“group”是同一个关系的两端。 – mericano1