Start Vaadin application from Maven archetypes?

Hi everyone,
I am evaluating how to implement my Vaadin application.
I follow this page to startup the Vaadin application. I want to base on this archetype to extend my web pages.
https://vaadin.com/blog/-/blogs/vaadin-7-3-7-and-new-maven-archetypes

As this page mentioned, “Backend - This is the simulated backend service for the UI. Replace it, for example, with your existing JPA backend.”
I should replace the backend, since my purpose is build the report page with some tables, data source is from Oracle. I have some questions about backend.

  1. JPA
    I have no experience with JPA. I readed JPAContainer chapter, it said “Entities must have an identifier that is used as the primary key for the table.” But some existed tables in existed oracle does not have primary key, or the composite primary key. For primary key issue, could I still try JPA? And I am afraid that learning JPA is more difficut than below #2 & #3. What are the benefit of using JPA?
  2. SQLContainer
    My previous Vaadin experience two years ago was using SQLContainer. I found SQLContainer is not update for long time. Is SQLContainer a good choose?
  3. Custom
    Directly query oracle and make the data to bean. Like Maven archetype’s data serivce.

Could someone please share your experience? Any comments welcome.

Can someone guide me to implement #1? How to replace backend to JPA?

My thinking is change ProductTable’s BeanItemContainer to JPAContianer. I tried, if do that, then should I move all backend packages to UI module? Since if I use JPAContianer in ProductTable, then I need to have JPA setting like persistence.xml and also need oracle driver in UI module.

Please someone give me some input. Thanks.