2

データ アクセス オブジェクト内で Hibernate を使用して、Java で次の操作を実行しています。

public List<Device> getDevices() {
    return getCurrentSession().createQuery("from Device").list();
}

これにより、次の警告が表示されます。

Type safety: The expression of type List needs unchecked conversion to conform to     List<Device>

私が使用している警告を削除するために

@SuppressWarnings("unchecked")

しかし、この警告を削除し、理想的には「デバイス」以外のものをデータベースから返されないように処理するより良い方法を探しています。

何か案は?

4

3 に答える 3

3

Javaには具体化されたジェネリックがないため、残念ながら注釈を取り除くことはできません:( SOでこれを検索する場合、最も頻繁に推奨される解決策の1つはCollections.checkedListを使用することです。これはここで役立つかもしれません

于 2013-08-21T14:38:30.243 に答える
1

spring質問にタグを付けたので、すでにSpringを使用していると思います。その場合、Hibernate 固有のものの代わりにSpringDataと JPA を使用する方がはるかに簡単です。そうしないと、API を変更できないため、警告を実際に取り除くことはできません。

于 2013-08-21T14:37:29.273 に答える
0

hibernate セッション オブジェクトは、型指定されたクエリを返しません。代わりに (hibernate がサポートする) EntityManager を利用できます。これにより、createQuery() でタイプを指定できます。

于 2013-08-21T18:11:51.563 に答える