2015-11-23 4 views
2

Я новичок в весеннем роу. Я должен разработать приложение, в котором пользователь (заявитель) может зарегистрироваться/войти, заполнить его данные профиля и загрузить некоторые документы. После этого пользователь может создать приложение. В этом приложении пользователь должен выбирать между университетами и специальностями, каждый университет имеет разные специальности. Я хочу, чтобы майоры менялись при выборе университета.Весенний роу: Модельный заявитель, приложение, университеты и специальность

У меня есть следующая модель, но я думаю, что ей нужны некоторые улучшения.

Applicant.java

@RooJavaBean 
@RooToString 
@RooJpaActiveRecord 
public class Applicant { 

    @NotNull 
    private String name; 

    @NotNull 
    private String phone; 

    private String address; 

    @NotNull 
    private String nationality; 

    @NotNull 
    private String email; 

    @Temporal(TemporalType.TIMESTAMP) 
    @DateTimeFormat(style = "M-") 
    private Date dateOfBirth; 

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "applicant") 
    private Set<Document> files = new HashSet<Document>(); 
} 

Major.java

@RooJavaBean 
@RooToString 
@RooJpaActiveRecord 
public class Major { 

    @NotNull 
    private String name; 

    private int numOfHours; 
} 

University.java

@RooJavaBean 
@RooToString 
@RooJpaActiveRecord 
public class University { 

    @NotNull 
    private String name; 

    private String address; 

    @NotNull 
    @ManyToMany(cascade = CascadeType.ALL) 
    private Set<Major> majors = new HashSet<Major>(); 
} 

Application.java

@RooJavaBean 
@RooToString 
@RooJpaActiveRecord 
public class Application { 

    @NotNull 
    private String status; 

    @ManyToOne 
    private Applicant applicant; 

    @ManyToMany(cascade = CascadeType.ALL) 
    private Set<University> universities = new HashSet<University>(); 
} 

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

Пример: университета имеет майор университет B имеет большие Аргументы B

При создании приложения, если пользователь выбрал УНИВЕРСИТЕТ только майор А должны появиться.

ответ

0

Замок в this post, который объясняет, как обрабатывать отношения ManyToMany с использованием JPA. Я думаю, вы пропустите mappedBy атрибут, чтобы сделать Университет-мэр отношение двунаправленный.

Удачи вам!

+0

Благодарим вас за комментарий, но если отношение между университетом и майором должно быть «один-ко-многим» или «многие-ко-многим». Должность посвящена главным образом отношениям Много-ко-многим. – MotGJU

+0

Тип отношений зависит от того, сколько университетов может быть связано с майором, и как к мэрам можно приложить к университету. Это модельное решение. На этом же сайте вы можете найти информацию о любом аспекте отношений JPA: https://en.wikibooks.org/wiki/Java_Persistence/Relationships – jmvivo

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

  • Нет связанных вопросов^_^