手动写关联关系不报错

This commit is contained in:
asp_ly 2024-11-26 23:13:03 +08:00
parent ce3e462771
commit 0537a5d8e4
2 changed files with 17 additions and 8 deletions

View File

@ -48,7 +48,7 @@ public class User extends Entity<Long> {
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL) // 指向 UserRole user 属性 @OneToMany(mappedBy = "user", cascade = CascadeType.ALL) // 指向 UserRole user 属性
private List<UserRole> userRoles; private Set<UserRole> userRoles;
// public void addRole(Role role) { // public void addRole(Role role) {
// UserRole userRole = new UserRole(this, role); // UserRole userRole = new UserRole(this, role);

View File

@ -3,16 +3,25 @@ package com.qqchen.deploy.backend.repository;
import com.qqchen.deploy.backend.common.repository.BaseRepository; import com.qqchen.deploy.backend.common.repository.BaseRepository;
import com.qqchen.deploy.backend.entity.UserRole; import com.qqchen.deploy.backend.entity.UserRole;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List; import java.util.Set;
@Repository @Repository
public interface UserRoleRepository extends BaseRepository<UserRole, Long> { public interface UserRoleRepository extends BaseRepository<UserRole, Long> {
List<UserRole> findByUserId(Long userId); @Query("SELECT ur FROM UserRole ur WHERE ur.user.id = :userId")
Set<UserRole> findByUserId(@Param("userId") Long userId);
void deleteByUserId(Long userId);
@Modifying
List<UserRole> findByRoleId(Long roleId); @Query("DELETE FROM UserRole ur WHERE ur.user.id = :userId AND ur.role.id = :roleId")
void deleteByUserIdAndRoleId(@Param("userId") Long userId, @Param("roleId") Long roleId);
@Query("SELECT COUNT(ur) > 0 FROM UserRole ur WHERE ur.user.id = :userId AND ur.role.id = :roleId")
boolean existsByUserIdAndRoleId(@Param("userId") Long userId, @Param("roleId") Long roleId);
} }