1 回答
TA贡献1831条经验 获得超9个赞
我发现您的存储库存在几个问题。
您正在使用表名称而不是
Entity
JPQL 查询中的名称。您尝试选择一个
List
对象,但返回Utilisateur
的签名而不是。getClients()
List<Client>
List<Utilisateur>
您正在尝试将角色与
:CLIENT
不属于您的getClients()
签名一部分的替换值 ( ) 进行匹配。
您正在Utilisateur
使用以下注释作为父级进行配置:
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="ROLE")
因此,我假设您至少有一个 , 的子类Utilisateur, Client您正在尝试查询该子类:
@Entity
public class Client extends Utilisateur {...}
在这种情况下,请尝试以下操作:
public interface UtilisateurRepository extends JpaRepository <Utilisateur,Long> {
@Query ("SELECT u FROM Utilisateur u WHERE TYPE(u) = Client")
public List<Utilisateur> getClients();
}
否则,您可能希望有一个单独的 ClientRepository:
public interface ClientRepository extends JpaRepository<Client,Long> {
// in which case you can just take advantage of findAll
// which is already provided by JpaRepository
}
添加回答
举报