【发布时间】:2020-08-15 05:20:22
【问题描述】:
假设我有这样的事情:
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "assigned_tasks", joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "task_id", referencedColumnName = "id"))
private Set<Task> assignedTasksDoer = new HashSet<>();
在我的“用户”实体类中。
当我获取用户时,它会带给我所有详细信息。这很棒。没有任何错误。 但是我怎样才能将它分成几部分,例如,当我只想获取用户的“assigned_tasks”时,我可以从 UserController 以外的其他控制器(即 AssignedTasksController)中获取它?
如果有人感兴趣,我愿意提供更多细节。
请帮助我,因为我正在开始这种面向对象的方法!是的,与 jpa、实体、DAO 和存储库一起工作很棒,同时让 Spring 处理引擎盖下的所有事情,这很棒,但是它有限制吗?我可以完全避免编写 sql 查询和准备语句或其他必须求助的情况吗?
TL;DR:用户实体也有其他字段。我想做一个只获取用户分配的任务的控制器路由,而不是每次都获取整个对象。我该怎么做?
【问题讨论】:
-
你能分享整个实体吗
-
我认为这个查询可以获取特定用户 entityManager.createQuery("Select distinct t from Task t join t.users u where u.id = :uid")
-
如果你添加一个例子会更清楚你的问题。
标签: java spring spring-boot jpa dao