Do the practice exercises, and make it clear which exercise is being done, and also put comments that help a beginner understand what is being done. Include all necessary information in your answer: do not require consulting another resource to be able to fully understand the answer you provide.:
4. Tutorial Using the Java Persistence API (Jakarta Persistence)
This tutorial is located within the download bundle under entitymanager/.
Objectives
 Bootstrap a Jakarta Persistence EntityManagerFactory

 Use annotations to provide mapping information

 Use Jakarta Persistence API calls

4.1. persistence.xml
The previous tutorials used the Hibernate-specific hibernate.cfg.xml configuration file. Jakarta Persistence, however, defines a different bootstrap process that uses its own configuration file named persistence.xml. This bootstrapping process is defined by the Jakarta Persistence specification. In Java™ SE environments the persistence provider (Hibernate in this case) is required to locate all Jakarta Persistence configuration files by classpath lookup of the META-INF/persistence.xml resource name.

Example 10. persistence.xml
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
        version="2.0">
    <persistence-unit name="org.hibernate.tutorial.jpa">
        ...
    </persistence-unit>
</persistence>
persistence.xml files should provide a unique name for each "persistence unit". Applications use this name to reference the configuration when obtaining an jakarta.persistence.EntityManagerFactory reference.

The settings defined in the <properties/> element are discussed in The Hibernate configuration file. Here the jakarta.persistence-prefixed varieties are used when possible. Notice that the remaining Hibernate-specific configuration setting names are now prefixed with hibernate..

NOTE
Configuration properties prefixed with the legacy Java EE "namespace" (javax.persistence.) are also still supported, although the Jakarta EE version (jakarta.persistence.) should be preferred

Additionally, the <class/> element functions the same as we saw in The Hibernate configuration file.

4.2. The annotated entity Java class
The entity is exactly the same as in The annotated entity Java class.

4.3. Example code
The previous tutorials used the Hibernate native APIs. This tutorial uses the Jakarta Persistence APIs.

Example 11. Obtaining the jakarta.persistence.EntityManagerFactory
protected void setUp() throws Exception {
	sessionFactory = Persistence.createEntityManagerFactory( "org.hibernate.tutorial.jpa" );
}
Notice again that the persistence unit name is org.hibernate.tutorial.jpa, which matches persistence.xml.

Example 12. Saving (persisting) entities
EntityManager entityManager = sessionFactory.createEntityManager();
entityManager.getTransaction().begin();
entityManager.persist( new Event( "Our very first event!", new Date() ) );
entityManager.persist( new Event( "A follow up event", new Date() ) );
entityManager.getTransaction().commit();
entityManager.close();
The code is similar to Saving entities. The jakarta.persistence.EntityManager interface is used instead of the org.hibernate.Session interface. Jakarta Persistence calls this operation "persist" instead of "save".

Example 13. Obtaining a list of entities
entityManager = sessionFactory.createEntityManager();
entityManager.getTransaction().begin();
List<Event> result = entityManager.createQuery( "from Event", Event.class ).getResultList();
for ( Event event : result ) {
	System.out.println( "Event (" + event.getDate() + ") : " + event.getTitle() );
}
entityManager.getTransaction().commit();
entityManager.close();
Again, the code is pretty similar to what we saw in Obtaining a list of entities.

4.4. Take it further!
Practice Exercises
 Develop an EJB Session bean to investigate implications of using a container-managed persistence context. Try both stateless and stateful use-cases.

 Use listeners with CDI-based injection to develop a JMS-based event message hub