没有ORM的多对多模型结构

时间:2018-10-05 11:23:14

标签: java

我有两个表: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;
}

this文章的答案是有关使用ORM的,它不适合我

PS:对不起,我的英语。

1 个答案:

答案 0 :(得分:1)

除非您对关系本身有特定的属性,否则将没有类来映射关系。

还必须确定关联用户练习的可导航性。是双向还是单向的?即您是否需要查找给定用户的所有练习,或给定用户的所有用户,还是两者都找到?

在第一种情况下,您将拥有:

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);