You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Albert Lee (JIRA)" <ji...@apache.org> on 2012/10/09 20:26:03 UTC
[jira] [Updated] (OPENJPA-2160) jest findcommand compound/composite
primary keys
[ https://issues.apache.org/jira/browse/OPENJPA-2160?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Albert Lee updated OPENJPA-2160:
--------------------------------
Fix Version/s: (was: 2.2.0)
2.3.0
> jest findcommand compound/composite primary keys
> ------------------------------------------------
>
> Key: OPENJPA-2160
> URL: https://issues.apache.org/jira/browse/OPENJPA-2160
> Project: OpenJPA
> Issue Type: Bug
> Components: jpa
> Affects Versions: 2.2.0
> Reporter: Herman Vierendeels
> Priority: Minor
> Fix For: 2.3.0
>
> Attachments: findcommand.diff
>
>
> jest find command with compound/composite primary key
> http://localhost:8080/openjpa_jest/jest/find/format=json?type=FAKTUREN&FBJ=2012&FNR=4
> diff
> 23d22
> < import java.lang.reflect.Modifier;
> 31d29
> < import java.util.Set;
> 33d30
> < import org.apache.openjpa.enhance.PCRegistry;
> 36d32
> < import org.apache.openjpa.meta.FieldMetaData;
> 39,40d34
> < import org.apache.openjpa.util.ObjectId;
> < import org.apache.openjpa.lib.log.Log;
> 78,82c72,74
> < Object[] keys_obj=parameters.keySet().toArray();
> < FieldMetaData[] fmds=meta.getPrimaryKeyFields();
> < if(fmds.length!=parameters.size())
> < {
> < throw new ProcessingException(ctx,new Exception("number of primaryKeys "+fmds.length+" differs from number of arguments "+parameters.size()));
> ---
> > Iterator<Map.Entry<String,String>> params = parameters.entrySet().iterator();
> > for (int i = 0; i < parameters.size(); i++) {
> > pks[i] = params.next().getKey();
> 84,104d75
> < for(int i=0;i<fmds.length;i++)
> < {
> < FieldMetaData fmd=fmds[i];
> < String shrtnm=fmd.getName();
> < int idx=fmd.getIndex();
> < boolean prmsContainName=parameters.containsKey(shrtnm);
> < if(prmsContainName)
> < {
> < String prm_val=parameters.get(shrtnm);
> < pks[i]=prm_val;
> < ctx.log(Log.INFO,"tshvr4 FindCommand process setting pks "+i+" shrtnm="+shrtnm+" to "+prm_val);
> < }
> < else
> < {
> < pks[i]=keys_obj[i];
> < if(i>0)
> < {
> < throw new ProcessingException(ctx,new Exception("if more than 1 primaryKey parm value,primaryKey parm value should be coded as primaryKeyField=primaryKeyValue because arguments are collected into map which does not respect sequence"));
> < }
> < }
> < }
> 106,109d76
> < if(oid instanceof ObjectId)
> < {
> < oid=((ObjectId)oid).getIdObject();
> < }
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira