[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [eclipselink-users] Conditional LEFT JOIN in JPQL
|
The additional fields can also be mapped by a java.util.Map-structure, i.e.
public class Country {
...
@ElementCollection
@CollectionTable(name="ExtCharFields",
joinColumns=@JoinColumn(name="country_id"))
@MapKeyColumn(name="fieldName")
@Column(name="fieldValue")
private Map<String, String> extChatFields;
...
}
In this case, no column "id" would be required for table ExtCharFields.
With this mapping, you would even have transparent "write access" to
ExtCharFields.
-- Frank
vide wrote:
>
> Hi, Tom,
> [...]
> Say application has the ability to dynamicaly extend table structure,
> i.e.
> virtualy describe additional columns in a table. For example we have a
> table:
> [Country]
> String name
> Integer id
>
> Customer wants to extend this table to add some extra fields, say
> "language"
> and "nationality". Such extra data is stored in a table:
> [ExtCharFields]
> Integer country_id
> String fieldName
> String fieldValue
> Integer id
>
> So, to present a table for viewing/editing, native SQL would look like
> this:
> SELECT c.name, e1.fieldValue AS language, e2.fieldValue AS nationality
> FROM Country c
> LEFT JOIN ExtCharFields e1 ON c.id=e1.country_id AND e1.fieldName =
> "language"
> LEFT JOIN ExtCharFields e2 ON c.id=e2.country_id AND e2.fieldName =
> "nationality"
>
> With this single SQL I get all I need and also can do any kind of sorting,
> paging, filtering results and etc., but I don't have any object/relational
> mapping, even can't use @SqlResultSetMapping, because query is dynamic. I
> could do this in JPQL, if it will support "ON" clause.
>
> Hope I was clear enough to illustrate the problem ;-)
>
> --
> Sincerely,
> Vidas
>
> _______________________________________________
> eclipselink-users mailing list
> eclipselink-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>
>
--
View this message in context: http://old.nabble.com/Conditional-LEFT-JOIN-in-JPQL-tp28432051p28484782.html
Sent from the EclipseLink - Users mailing list archive at Nabble.com.