URLを格納するデータベーステーブルがあります(http://google.comなど)。テーブルに対応するエンティティがURLタイプフィールドを持っているので、私は次のような基準クエリを作成します。java.net.URL型オブジェクトの条件クエリを実行する可能性と制限
CriteriaBuilder cb = ...
Path<URL> path = ...
cb.equal(path , new URL("http://google.com"));
意図したとおり、この作品、しかし、私はこのような何かを行うことができるようにしたい:
cb.like(path.<String>get("externalForm"), "%google%");
は明らかURLはexternalFormフィールドを持っていないが、代わりにtoExternalForm()メソッドを持っています。
この種類のクエリはAPIで可能ですか?はいの場合:どのように?または、URL列をURLではなく文字列にマップするのが最善でしょうか?
「URL」オブジェクトの代わりにURLに単純な文字列を使用する場合は+1。 –
私はこれをやったことがありますが、_LIKE_を含むクエリはこのように不可能ですが、_URL.equalsが破損しているため(Object)_メソッドです。私はURLのこの特定の側面について完全に忘れてしまった。この種の問合せを発行する必要があるかどうかはわかりませんが、そうでない場合はURLの代わりに_URI_を使用します。それまで:レスキュー用の文字列!答えをありがとう! –
URIとJPA(Hibernate)に関する単なる楽しい事実:URLは注釈魔術なしでHibernateによって自動的にマッピングされますが、URIはそうではありません。カスタムタイプを定義する必要があります。基本的に[_UrlType_](http://docs.jboss.org/hibernate/core/3.6/javadocs/org/hibernate/type/UrlType.html)と[_UrlTypeDescriptor_](http://docs.jboss)を模倣する必要があります。 org/hibernate/core/3.6/javadocs/org/hibernate/type/descriptor/java/UrlTypeDescriptor.html)を使用してください。その後、URI型フィールドのマッピングは透過的に行われます。 –