UserDetails
hasmanyFiledTask
とTask
hasManyの関係を持つ 3 つのエンティティがありFiledTask
ます。私が欲しいのはFiledTask
特定のリストですUser
UserDetails の場合:
@OneToMany(mappedBy="user",cascade=CascadeType.ALL)
Collection<FiledTask> filedTasks = new ArrayList<FiledTask>();
そして、私が持っているタスクについて
@OneToMany(mappedBy="task")
Collection<FiledTask> filedTasks = new ArrayList<FiledTask>();
そして FiledTask は次のようになります
@ManyToOne
@JoinColumn(nullable = false, name = "taskId")
private Tasks task;
@ManyToOne
@JoinColumn(nullable = false, name = "userId")
private UserDetails user;
私が試してみました
query = session.createQuery("from Tasks as tasks inner join tasks.filedTasks as files with files.user = :user");
query.setParameter("user", user); //user is UserDetails instance
しかし、エラー句は駆動テーブルの列のみを参照できます。つまり、FiledTask は比較のために userId を使用できませんか?
with clause can only reference columns in the driving table [from com.akhi.app.cdm.Tasks as tasks inner join tasks.filedTasks as files with files.user = :user]