Hallo zusammen,
ist es möglich, eine Nicht-Standard-SQL-Funktion von Postgresql wie "split_part" so zu registrieren, dass sie wie bspw. sum() funktioniert?
Folgendes Beispiel mit sum() kann ich in meiner javax.persistence.NamedQuery verwenden:
Code:
select v.property_1, sum(v.property_2) FROM entityname v GROUP BY v.property_1
Leider funktioniert es mit der split_part() Funktion nicht:
Code:
select v.property_1, split_part(v.property_3) FROM entityname v GROUP BY v.property_1
Folgende Exceptions werden geworfen:
- antlr.NoViableAltException: unexpected token: v
bzw.
- org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: v
Registriert habe ich die "split_part" wie folgt:
Code:
public class MyPostgreSQL9Dialect extends PostgreSQL9Dialect {
public MyPostgreSQL9Dialect () {
super();
registerFunction("split_part", new StandardSQLFunction("split_part", StandardBasicTypes.STRING));
}
}
Zum besseren Verständnis habe ich die split_part - Funktion vereinfacht dargestellt.Vielen Dank und Grüße
Jan