Возможно ли иметь сопоставление "многие к одному / одному к многим" и "один к одному" для одних и тех же двух классов?

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

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

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

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

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 ответ

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

private List<User> user;

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

${branch.user[0].username}

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

Другие вопросы по тегам