JPAには、次のシグネチャのメソッドがあります。
<T> CriteriaQuery<T> createQuery(Class<T> resultClass);
resultClass型自体が型パラメーター化されている場合、このメソッドを呼び出すにはどうすればよいですか?
例えば:
public class ResultDto<T> {
...
}
次のことを試しましたが、うまくいきませんでした:
createQuery(ResultDto<String>.class);
JPAには、次のシグネチャのメソッドがあります。
<T> CriteriaQuery<T> createQuery(Class<T> resultClass);
resultClass型自体が型パラメーター化されている場合、このメソッドを呼び出すにはどうすればよいですか?
例えば:
public class ResultDto<T> {
...
}
次のことを試しましたが、うまくいきませんでした:
createQuery(ResultDto<String>.class);
ジェネリック型 ( 、、など)Classの特定のインスタンス化のインスタンスはありません。ResultDto<String>ResultDto<Integer>ResultDto<MyObject>
クラスがジェネリックであるかどうかに関係なくClass、クラスの生のバージョンを表すインスタンスは常に 1 つだけです。あなたの場合、それはResultDto.classです。
使用できますcreateQuery(ResultDto.class)
その理由は、 ResultDto のオブジェクトを作成するときは、常に型パラメーターを使用して作成するためです。たとえば
ResultDTo<String> rs = new ResultDTo<String>()
、この型パラメーターは<T> CriteriaQuery<T> createQuery(Class<T> resultClass);