Oracle Funktion: UTL_MATCH.EDIT_DISTANCE_SIMILARITY

webhalf

Grünschnabel
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:
Code:
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 :D

mfg
webhalf
 
Moin Moin

habe es nun wie folgt gelöst (für die die es interessiert ^.^):

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 :)
 
Zurück