2015-08-20 2 views
0

У меня есть класс сущности. Я использую JPA.Как найти пользователя из списка внутри группы Сущность класса

@Entity 
@Table 
public class Group implements Serializable { 

    @Id 
    @Column(nullable = false) 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private long id; 
    @OneToOne 
    private User ownerId; 
    @OneToMany 
    private List<User> groupMember; 

    private String name; 

    //settter and getter 
} 

Теперь я должен найти ли пользователь принадлежит к кому-либо группы или нет

Если пользователь принадлежит к группе, то к какой группе.

Метод, с помощью которого я могу его достичь: Чтобы прочитать всю строку группы и найти пользователя из группы.groupMember по итерации , но это не очень хороший метод.

ответ

0

Здесь у вас есть 2 способа сделать это:

1) либо перебирать все группы и найти, если пользователь принадлежит к какой-либо группе или

2) написать запрос SQL, который делает то же самое для вас.

Что бы вы ни использовали, оно будет всегда «тяжелым/не предпочтительным» решением, потому что ему нужно много обработки.

Вместо этого вы можете изменить модель домена. вы можете поместить ссылку группы внутри пользователя. Итак, когда у вас есть пользователь, у вас уже будет группа, и вам не нужно выполнять более двух тяжелых операций.

Для этого вам больше не нужно менять свою модель домена. вы можете просто добавить ссылку группы в свой пользовательский объект, предоставив отношения OneToOne и сохранив группу внутри пользователя, и все готово. Теперь, когда вы извлекаете пользователя, вы также получите связанную с ним группу.

Смежные вопросы