[Java lista] eclipselink+postgresql+stored procedure
Tapodi Zoltán
tapodiz at freemail.hu
2009. Júl. 29., Sze, 23:07:06 CEST
Helló,
Próbáld meg a :userId helyett a ?1 használni a queryben és a
qry.setParameter(1, usr.getId());
Üdv: Zoli
zamek írta:
> hello,
>
> Igen, csak a Te peldaid egy selectre vonatkoznak, nem egy stored
> function-ra. Kiprobaltam, hisztizik a userId input parameteren.
> Igy probaltam:
>
> @NamedNativeQuery(name = "getUserPermissions",
> query = "SELECT p_id, p_name, p_mask
> FROM userpermissions(:userId)",
> resultSetMapping = "uperm")
> @SqlResultSetMapping(name = "uperm",
> entities = {@EntityResult(entityClass = Permissions.class,
> fields = {@FieldResult(name = "id", column = "p_id"),
> @FieldResult(name = "name", column = "p_name"),
> @FieldResult(name = "mask", column = "p_mask")
> })
> })
> ...
>
> Query qry =em.createNamedQuery("getUserPermissions");
> qry.setParameter("userId", usr.getId());
> List res = qry.getResultList();
> return res;
>
>
> Tapodi Zoltán írta:
>
>> Szia,
>>
>> én sem olvastam végig, de én hasonlóan mappeltem natív query eredményét
>> ( ez csak egy fiktív kód, a vastagon szedett nevekre figyelni kell):
>>
>> @NamedNativeQuery(name = "getAttributes",
>> query = "SELECT id, *attrib_name*,
>> string_value FROM attributes WHERE attrib_name='color'",
>> resultSetMapping = "*attributeMapping*")
>> @SqlResultSetMapping(name = "*attibuteMapping*",
>> entities = {
>>
>> @EntityResult(entityClass = *AttributeInfo*.class,
>>
>> fields = {
>>
>>
>> @FieldResult(name = "id", column = "id"),
>>
>> @FieldResult(name = "*attribName*", column =
>> "*attrib_name*"),
>>
>> @FieldResult(name = "value", column = "string_value")
>>
>> }) })
>>
>>
További információk a(z) Javalist levelezőlistáról