Роль
默认情况下,用户有一个属性,TENANT
在我们询问他的查询的帮助下LANDLORD
,现在他将具有各种属性的公寓添加到表中HOUSE
:描述、价格、city_id 等。该用户想删除他自己的状态LANDLORD
,从我们的数据库中删除他的公寓,然后再次成为TENANT
我的公寓,如果他有的话,将状态设为 INACTIVE?我只是明白如何为他分配一个角色,但我没有猜到如何找到属于他的公寓。出于某种原因,我的 id_landlord 搜索版本不起作用。附上一张房子和用户属性的照片。
代码片段如下所示:
@PutMapping("/{id}")
@PreAuthorize("hasAuthority('landlord:write')")
public void TenantPostAdd(@PathVariable(value = "id") Long id) {
User user = userRepository.findById(id).orElseThrow();
user.setRole(Role.TENANT);
House house = houseRepository.findById_landlord(id); - не работает
house.setStatus(Status.INACTIVELY);
}
房子仓库:
@Repository
public interface HouseRepository extends JpaRepository<House, Long> {
House findById_landlord(@Param("id_landlord") House house);
}
完整代码。
我自己能够做到,我希望这些行动足够正确。解释:得到一个id,找到这个用户,给他分配角色“TENANT”,然后找到他所属的房子,设置他们的状态并保存一切。诚然,我不是很喜欢储蓄,但很匆忙。