webhalf Geschrieben 10. August 2010 Geschrieben 10. August 2010 Moin Moin Ich habe da eine Frage,... Gibt es eine Möglichkeit, die Funktion "UTL_MATCH.EDIT_DISTANCE_SIMILARITY" von Oracle zu nutzen? Wenn ja, wie... Die Hilfe, sowie Google brachten keine hilfreichen Ergebnisse hervor. Also: Ich habe zwei Tabellen: MediaContest und MediaFile MediaContest: id, contestname, racedate, ... MediaFile: id, media_contest_id, ... (Die Entitys sehen dem entsprechend aus) Ich muss eine Ähnlichkeitsanalyse durchführen um zu einem bestimmten MediaContest (Parameter ?1) MediaContest's zu bekommen, die dem bestimmten MediaContest ähnlich sind, sortiert nach der Oracle-Funktion (eds), mit ausnahme von dem eigentlichen MediaContest (Parameter ?2). Mit Ähnlichkeit meine ich, dass nur der ContestName ähnlich sein muss. Zusätzlich brauche ich nur die ersten Zeilen (Parameter ?3) Als Resultat sollten aber die MediaFiles zurückgegeben werden Mittels T.O.A.D. benutze ich folgendes SQL-Statement: SELECT * FROM MediaFile WHERE media_contest_id in ( SELECT id FROM ( SELECT id, UTL_MATCH.EDIT_DISTANCE_SIMILARITY(?1, contestname) eds from MediaContest where id != ?2 order by eds desc ) WHERE ROWNUM <= ?3 ) Nun habe ich das Problem dieses mittels Hibernate darzustellen, vorallem weil ich nicht weiß, wie man die Oracle-Funktion in diese ganze Geschichte einbinden kann. Vllt. weiß hier ja jemand bescheid schonmal Danke mfg webhalf Zitieren
Schiller256 Geschrieben 10. August 2010 Geschrieben 10. August 2010 Nutzt du Hibernate direkt oder nutzt du JPA was ja der Standard ist? Eine Lösung die mir auf die schnelle einfällt sind Named Query's die sowohl in Hibernate als auch in JPA möglich sind. Chapter 16. Native SQL Implementing a JPA Named Query Zitieren
webhalf Geschrieben 11. August 2010 Autor Geschrieben 11. August 2010 Wir arbeiten hier mit JPA werde mir das gleich mal anschauen und versuche daraus etwas zu basteln Zitieren
webhalf Geschrieben 18. August 2010 Autor Geschrieben 18. August 2010 Moin Moin hatte nun ein wenig Zeit zum Testen Es funktioniert mit Native SQL. Man gibt einfach einen normalen SQL-String an (z.B. den von oben) und übergibt zusätzlich eine Klasse in der es gemappt werden soll und fertig thx Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.