Возможно ли иметь сопоставление «многие к одному / одному к многим» и «один к одному» для одних и тех же двух классов? - PullRequest
0 голосов
/ 22 сентября 2018

У меня есть две таблицы.Я успешно ссылался на branch_id (таблица пользователей) и branch_id (таблица ветвей) в моем файле списка пользователей.На моем контроллере филиалов я хочу показать список филиалов с соответствующим менеджером.Я новичок в этом, поэтому я не совсем понимаю, как это работает.

Таблица филиалов

Branch Table

Таблица пользователей User table

User.java

@Entity
@Table(name="user")
public class User {

    /......

    @ManyToOne()
    @JoinColumn(name="branch_id", referencedColumnName = "branch_id",insertable=false, updatable=false)  
    private Branch branch;


    public Branch getBranch() {
        return branch;
    }

    public void setBranch(Branch branch) {
        this.branch = branch;
    }


}

Branch.java

@Entity
@Table(name="branch")
public class Branch {

    /....

    @OneToMany(targetEntity=User.class, mappedBy="branch",cascade=CascadeType.ALL, fetch = FetchType.LAZY)
    private List<User> user;

    public List<User> getUser() {
        return user;
    }

    public void setUser(List<User> user) {
        this.user = user;
    }
}

Нужно ли объявлять взаимно-однозначное сопоставление между branch_manager (branch_table) и id (пользовательская таблица), или я могу использовать свой много-отображение один-один-много?Я попытался вызвать соответствующий менеджер филиала в моем branch_list.jsp следующим образом:

<c:forEach items="${branchList }" var="branch">
    <tr>
        <td>${branch.branch_name}</td>
        <td>${branch.user.username}</td>
    </tr>
</c:forEach>

, но когда я включаю "branch.user.username", это дает мне ошибки.

Большое спасибо.

1 Ответ

0 голосов
/ 22 сентября 2018

${branch.user.username} выдаст ошибку, очевидно, потому что вы рассматриваете как объект с одним пользователем, но на самом деле это список пользователей.

private List<User> user;

, поэтому попробуйте получить как показано ниже.

${branch.user[0].username}

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

...