「名前」を受け入れ、この名前でデータベースからトークンを取得し、トークンを返す残りのWebサービスがあります。残りの Web サービスの URL は次のようになります。
http://localhost:8080/NameService/Tokens?name=Bob
serviceLayer には、次のようなメソッドがあります。
@GET
@Path("Tokens")
@Produces("application/xml")
public JAXBElement<GetToken> getokenByName(@QueryParam("name") final String name ) {
if(name!=null){
// use hibernate criteria to fetch the records from db
Criteria crit = getSession().createCriteria(getPersistentClass());
crit.add(Restrictions.eq("name",name))
}
}
クライアントがリクエストで複数の名前を同時に送信できる場合の要件が変更されました。
http://localhost:8080/NameService/Tokens?name=Bob,Aaron,Brendon
送信される名前の数は可変です。1 か 2 か 3 などです。この分割を実現し、上記のコードを調整してサービス層の OR 条件として Hibernate 基準に渡す方法についてのアイデアはありますか?これは 1 つの名前で機能しますか?
1 つの方法としてStringUtils
、区切り文字 (コンマ) を使用してさまざまな名前を解析し、リストを作成して、リスト内の名前を条件制限に追加する方法があります。しかし、これが機能するかどうかはわかりません。
何か案は?