javaの使用Windowsパスをh2データベースに保存し、ファイル名を照合してHibernateを使用してオブジェクトを取得しようとした場合。
public static List<Object[]> findSongsRecNoAndModifiedDateWithinFolder(Session session, String folder)
{
Query q = session.createQuery("select recNo, filename, lastModified from Song t1 where t1.filename like :filename");
q.setParameter("filename", folder+'%', StandardBasicTypes.STRING);
List<Object[]> results = (List<Object[]>)q.list();
return results;
}
一致しません。
データベースに追加して取得しようとしたときにすべての「\」を「/」に変換すると、すべて機能しますが、UNIXとWindowsのファイルパスの違いを無視しようとしていたのは少し面倒です。
したがって、問題は、Windowsのファイル区切り文字'\'がJava(およびデータベース)のエスケープ文字でもあることに関係しています。しかし、私が本当に理解していないのは、Java、データベース、または休止状態の問題と、それを回避できるかどうかです。