Hi,

I have been going through different post to see how i can use JPA component
to invole named query with parameter. I know from documentation  that we
need to add it to the registry. Right now i am stuck and not able tot find a
way to get the parameter to the registry. Below is the route i have. I need
help with the syntax to pass data to registry.

I am using Java DSL with Spring Configuration for loading my Routes. I am
using Camel 2.18.2

from("jetty:{{server.api.endpoint}}/file_monitor/ui/profile/delete?httpMethodRestrict=DELETE")
                                .setHeader(Exchange.CONTENT_TYPE,
constant("application/json")).onException(Throwable.class).handled(true).process(genericExceptionHandler)
                        
.end().validate(header(HeaderConstant.CLIENT_ID).isNotNull()).validate(header(HeaderConstant.FILE_NAME_PATTERN).isNotNull())
                                .process(new Processor() {
                                        @Override
                                        public void process(Exchange exchange) 
throws Exception {
                                                Integer clientId =
exchange.getIn().getHeader(HeaderConstant.CLIENT_ID, Integer.class);
                                                String fileNamPattern =
exchange.getIn().getHeader(HeaderConstant.FILE_NAME_PATTERN, String.class);
                                                FileProfilePK deleteEntity = 
new FileProfilePK(clientId,
fileNamPattern);

                                                SimpleRegistry registry = new 
SimpleRegistry();
                                                Map<String, Object> params = 
new HashMap<String, Object>();
                                                params.put("delete_entity", 
deleteEntity);
                                                registry.put("params", params);

                                        

                                                
exchange.getIn().setBody(deleteEntity, FileProfilePK.class);
                                        }
                        
}).to("jpa://deleteProfileId?consumer.namedQuery=deleteFileProfile&consumer.parameters=#params").marshal().json(JsonLibrary.Jackson);
                

In the entity class, the named Query is defined as - 
@NamedQueries({ @NamedQuery(name = "deleteFileProfile", query = "DELETE from
FileProfileEntity fpe WHERE fpe.fileProfilePk = :delete_entity") })



Thanks 
Sumit



--
View this message in context: 
http://camel.465427.n5.nabble.com/Camel-JPA-Name-Query-with-Parameters-tp5795279.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to