Este é meu JPA 2.1 só tem que dá erro no eclipse. Como fica o persistence.xml para o JPA 2.2 ?

<?xml version="1.0" encoding="UTF-8"?>
<persistence
  xmlns="http://xmlns.jcp.org/xml/ns/persistence"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
  version="2.1">             
	<persistence-unit name="erp" transaction-type="RESOURCE_LOCAL">
		<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
		<properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
            <property name="hibernate.hbm2ddl.auto" value="update"/>
            <property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
            <property name="javax.persistence.jdbc.user" value="sa"/>
            <property name="javax.persistence.jdbc.password" value=""/>
            <property name="hibernate.show_sql" value="false"/>
            <property name="hibernate.format_sql" value="false"/>
            <property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:data/athos"/>
        </properties>
    </persistence-unit>
</persistence>

Estes são os arquivos jar do projeto desktop JPA 2.2 hibernate 5.3 Java 1.9

antlr-2.7.7
classmate-1.3.0
dom4j-1.6.1
hibernate-commons-annotations-5.0.1.Final
hibernate-core-5.3.0.Beta1
hsqldb
itextpdf-5.5.12
jandex-2.0.3.Final
javassist-3.22.0-GA
javax.persistence-api-2.2
jaxb-api-2.3.0
jboss-logging-3.3.1.Final
jboss-transaction-api_1.2_spec-1.0.1.Final
jfreechart-1.5.0
jlfgr-1_0
mysql-connector-java-5.1.22-bin

Qual erro que dá?

O programa roda sem erros o problema é que fica aqueles icones vermelhos de erro no eclipse.

package erp.banco;

import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.Query;

import erp.aop.JPA;

final class BancoDaoImp implements BancoDao {

	@Override
	public String construirQuery(StringBuilder stringBuilder) {
		String pesquisa = stringBuilder.toString();
		if (pesquisa.endsWith("and")) {
			pesquisa = stringBuilder.substring(0, stringBuilder.length() - 4);
			stringBuilder = new StringBuilder(pesquisa);
		}
		if (pesquisa.endsWith("where")) {
			pesquisa = stringBuilder.substring(0, stringBuilder.length() - 5);
			stringBuilder = new StringBuilder(pesquisa);
		}
		stringBuilder.append(" order by B.nome");
		pesquisa = stringBuilder.toString();
		return pesquisa;
	}

	@Override
	public void deletarBanco(Banco banco) {
		EntityManager em = JPA.getEMF().createEntityManager();
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		em.remove(em.find(Banco.class, banco.getId()));
		tx.commit();
		em.close();
	}

	@Override
	public Banco getBanco(Banco banco) {
		EntityManager em = JPA.getEMF().createEntityManager();
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		return em.find(Banco.class, banco.getId());
	}

	@Override
	public Collection<Banco> getBancoTodos() {
		EntityManager em = JPA.getEMF().createEntityManager();
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		Query query = em.createQuery("from erp.banco.Banco B order by B.nome");
		@SuppressWarnings("unchecked")
		List<Banco> list = query.getResultList();
		tx.commit();
		em.close();
		return list;
	}

	@Override
	public Collection<Banco> pesquisarBanco(Banco banco) {
		StringBuilder qsb = new StringBuilder();
		qsb.setLength(0);
		qsb = new StringBuilder();
		qsb.append("select B from erp.banco.Banco B where");
		HashMap<String, Object> parametros = new HashMap<String, Object>();
		if (banco.getId() != null) {
			qsb.append(" B.id = :id and");
			parametros.put("id", banco.getId());
		}
		if (banco.getNome() != null && !banco.getNome().trim().equals("")) {
			qsb.append(" B.nome like :nome and");
			parametros.put("nome", "%" + banco.getNome() + "%");
		}
		if (banco.getCodigo() != null && !banco.getCodigo().trim().equals("")) {
			qsb.append(" B.codigo like :codigo and");
			parametros.put("codigo", "%" + banco.getCodigo() + "%");
		}

		EntityManager em = JPA.getEMF().createEntityManager();
		Query query = em.createQuery(this.construirQuery(qsb));

		Set<Map.Entry<String, Object>> set = parametros.entrySet();

		for (Map.Entry<String, Object> me : set) {
			query.setParameter(me.getKey(), me.getValue());
		}

		EntityTransaction tx = em.getTransaction();
		tx.begin();
		@SuppressWarnings("unchecked")
		List<Banco> list = query.getResultList();
		tx.commit();
		em.close();
		return list;
	}

	@Override
	public void salvarBanco(Banco banco) {
		EntityManager em = JPA.getEMF().createEntityManager();
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		em.merge(banco);
		tx.commit();
		em.close();
	}
}

import javax.persistence.EntityTransaction;
import javax.persistence.Query;
EntityManager em = JPA.getEMF().createEntityManager();
EntityTransaction tx = em.getTransaction();

// no arquivo acima essas linhas ficam com o ícone vermelho de erro

// Esse arquivo já não aparece nenhum ícone de erro

package erp.aop;

import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class JPA {

	private static final EntityManagerFactory emf;

	static {
		try {
			emf = Persistence.createEntityManagerFactory("erp");

		} catch (Exception ex) {
			System.err.println("Initial EntityManagerFactory creation failed." + ex);
			ex.printStackTrace();
			throw new ExceptionInInitializerError(ex);
		}
	}

	public static EntityManagerFactory getEMF() {
		return emf;
	}
}
// Esse arquivo também não aparece erro nenhum

package erp.banco;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.PersistenceContext;

@SuppressWarnings("serial")
@PersistenceContext(unitName = "erp")
@Entity
public class Banco implements Serializable {

	@Id
	@GeneratedValue
	private Long id;
	@Column(length = 10)
	private String codigo;
	@Column(length = 50)
	private String nome;

	public String getCodigo() {
		return this.codigo;
	}

	public Long getId() {
		return this.id;
	}

	public String getNome() {
		return this.nome;
	}

	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	@Override
	public String toString() {
		return this.nome;
	}
}

// Essa é minha versão do eclipse

Eclipse IDE for Java Developers
Version: Oxygen.2 Release (4.7.2)
Build id: 20171218-0600
OS: Windows 10, v.10.0, x86_64 / win32

Será que eu devo criar um jee project em vez de um javaproject ?
E baixar o eclipse jee ?

Resolvido. Se for usar JPA tem que criar

File -> New -> Java EE-> Application Client Project

Só não consegui o arquivo persistence.xml para o JPA 2.2

Resolvido nada esqueci de olhar, ele está compilando com java 1.8 quando mudei para java 1.9 os erros voltaram.

Sei que é antigo esse post, mas fiz um tutorial sobre JPA, com a sua configuração, por favor, veja se ajuda. Seguem os links:
http://www.tidicas.com.br/?p=1864
http://www.tidicas.com.br/?p=130