有一個物體:
@Entity
class User {
@Id
private Long id;
...
@NotEmpty
@CollectionElement
private List<String> IPs;
// setters and getters
}
資料庫中的表 USER:
ID | ...
-----
1 | ...
=====
資料庫中的表 USER_IPS:
USER_ID | IPS
-----
1 | '127.0.0.1'
=====
存盤庫是:
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
@Query("SELECT u FROM User u "
"WHERE :request IN u.IPs")
List<User> getUsers(@Param("requestIP") String iP);
}
當使用“127.0.0.1”作為引數呼叫存盤庫方法時,它總是回傳一個空串列,而它必須根據資料庫中恢復的資料回傳一個 id = 1 的用戶。
問題是什么?
uj5u.com熱心網友回復:
您可以使用IN ELEMENTS或MEMBER OF
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
@Query("SELECT u FROM User u "
"WHERE :request IN ELEMENTS(u.IPs)")
List<User> getUsers(@Param("requestIP") String iP);
}
或者:
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
@Query("SELECT u FROM User u "
"WHERE :request MEMBER OF u.IPs")
List<User> getUsers(@Param("requestIP") String iP);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/459169.html
