Возможно ли сделать инъекцию в EntityManager с EclipseLink 2.3?
Это мой файл persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" 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">
<persistence-unit name="SuaParte" transaction-type="RESOURCE_LOCAL">
// classes..
<properties>
<property name="eclipselink.jdbc.batch-writing" value="JDBC"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/schema"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="root"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
</properties>
</persistence-unit>
</persistence>
Я новичок в JPA, поэтому сначала я создал этот файл persistence.xml, чтобы проверить, работает ли он, но теперь я хотел бы использовать @PersistenceContext
, чтобы не беспокоиться об управлении * 1007. * и EntityManager
.
Я использую веб-разработчики Eclipse Indigo Java EE с GlassFish v3.
UPDATE:
Я придерживаюсь подхода Андрея Боднареску и этого учебника , и все в порядке, чтобы установить соединение с моей базой данных через GF3:
И я изменяю свой файл persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" 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">
<persistence-unit name="SuaParte" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/mysql</jta-data-source>
//classes..
</persistence-unit>
</persistence>
Итак, я пытаюсь что-то сохранить в своей базе данных:
@Stateless
@LocalBean
public class DaoUser {
@PersistenceContext(unitName="SuaParte")
private EntityManager em;
public void persist(User user){
try{
em.persist(user);
}catch(Exception e){
e.printStackTrace();
}
}
}
И он возвращает java.lang.NullPointerException
в em.persist(user);
.
Что я делаю не так?