У меня есть две таблицы: User (id pk, name, ...) и Exercise (id pk, content, ...), которые имеют отношение «многие ко многим». Я создаю два класса, представляющих его.
public class User{
private int id;
private String name;
....
}
public class Exercise{
private int id;
private String content;
....
}
Итак, мой вопрос: как добавить отношения «многие ко многим» без использования ORM (не спрашивайте меня, почему я не могу этого сделать)? Нормально ли создавать новый класс UserExercise, например:
public class UserExercise{
private int id_user;
private int id_exercise;
}
Ответ статьи это про использование ORM, и меня это не устраивает
PS: Извините за мой английский.
@Hector, а как он должен работать? Например, добавив в User дополнительное поле List <Exercise> упражнений и то же самое в Exercise?




Если у вас нет определенного атрибута для самой связи, у вас не будет класса для сопоставления отношения.
Вы также должны определить возможность навигации пользовательского упражнения ассоциации. Он двунаправленный или однонаправленный? Т.е. вам нужно найти все упражнения данного пользователя, или всех пользователей данного упражнения, или и то, и другое?
В первом случае у вас будет:
public class User{
private int id;
private String name;
List<Exercise> exercises;
}
Во втором случае:
public class Exercise{
private int id;
private String content;
private List<User> users;
}
И то, и другое в третьем случае.
Позаботьтесь о том, чтобы поддерживать двунаправленное движение сложнее. Вы должны делать одновременно:
user.getExercises().add(exercise);
exercise.getUsers().add(user);
Большое спасибо за ваш ответ! Это именно то, что мне нужно!
Класс - это не таблица базы данных. Вы должны моделировать свои классы, думая в предметной области, а не в данных