Java 如何在Camel中持久化记录后获得生成的主键

Java 如何在Camel中持久化记录后获得生成的主键,java,jpa,apache-camel,Java,Jpa,Apache Camel,我正在尝试获取主键,它是在使用Camel将数据插入数据库后自动生成的。我看到了,有一个JIRA问题()解决了 from("file:data/source?noop=true") .to("validator:books.xsd") .split() .tokenizeXML("book")

我正在尝试获取主键,它是在使用Camel将数据插入数据库后自动生成的。我看到了,有一个JIRA问题()解决了

                     from("file:data/source?noop=true")
                        .to("validator:books.xsd")
                        .split()
                        .tokenizeXML("book")
                        .unmarshal(jaxb)
                        .to("jpa:com.labs.Book")
                        .process(new Processor() {
                            public void process(Exchange exchange)
                                    throws Exception {
                                //here i want to get that primary key
                            }
                        });

有人能给我举个例子吗…

主键是在实体类上设置的,所以请检查该类。您需要使用JPA注释配置JPA实体,在JPA注释中定义哪个字段是主键


只需在web或本网站上搜索
jpa主键

就可以在实体类上设置主键,因此请检查该类。您需要使用JPA注释配置JPA实体,在JPA注释中定义哪个字段是主键


只要在网上或这个网站上搜索一下jpa主键,在上面的专家提供了一些谷歌搜索和建议之后就可以了。我得到了我问题的答案

from("file:data/source?noop=true")
                        .to("validator:books.xsd")
                        .split()
                        .tokenizeXML("book")
                        .unmarshal(jaxb)
                        .to("jpa:com.labs.Book")
                        .process(new Processor() {
                            public void process(Exchange exchange)
                                    throws Exception {
                                //here it is
                                int Id = exchange.getIn().getBody(Book.class).getId();
                            }
                    });

谢谢大家。

是的,经过谷歌搜索和上面专家的建议。我得到了我问题的答案

from("file:data/source?noop=true")
                        .to("validator:books.xsd")
                        .split()
                        .tokenizeXML("book")
                        .unmarshal(jaxb)
                        .to("jpa:com.labs.Book")
                        .process(new Processor() {
                            public void process(Exchange exchange)
                                    throws Exception {
                                //here it is
                                int Id = exchange.getIn().getBody(Book.class).getId();
                            }
                    });

谢谢大家。

我建议检查如何使用JPA实现这一点,因为这是您用于数据库访问的。还有一些可能的方法可以配置JPA以使用主键更新实体。添加了JPA标记,因为这是一个与JPA相关的问题。Javaman提示:用更多的标签标记你的问题将有助于它获得良好的曝光率。可能重复@JaredFarrish谢谢你,Jared。但我想知道如何在骆驼路线中得到它。当我在jpa持久化后打印标题时,我找不到任何关于生成的密钥的标题。@ClausIbsen谢谢claus。但是我想知道如何在持久化之后获得序列生成的主键。我建议检查如何使用JPA实现这一点,因为这是用于数据库访问的。还有一些可能的方法可以配置JPA以使用主键更新实体。添加了JPA标记,因为这是一个与JPA相关的问题。Javaman提示:用更多的标签标记你的问题将有助于它获得良好的曝光率。可能重复@JaredFarrish谢谢你,Jared。但我想知道如何在骆驼路线中得到它。当我在jpa持久化后打印标题时,我找不到任何关于生成的密钥的标题。@ClausIbsen谢谢claus。但是我想知道如何在持久化之后获得序列生成的主键。