我正在尝试使用JPA连接到SQL数据库,但出现此错误:
org.apache.cxf.interceptor.Fault:事务处于活动状态时,无法执行此操作。
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"
xmlns="http://xmlns.jcp.`enter code here`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">
<persistence-unit name="jpa" transaction-type="RESOURCE_LOCAL">
<class>Entities2.User</class>
<class>Entities2.Meeting</class>
<class>Entities2.Destination</class>
<properties>
<property name="javax.persistence.jdbc.url"
value="jdbc:sqlserver://DESKTOP-MJ1GR85:1433;DatabaseName=java2;integratedSecurity=false" />
<property name="javax.persistence.jdbc.user" value="newNava" />
<property name="javax.persistence.jdbc.password" value="password" />
<property name="javax.persistence.jdbc.driver"
value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<property name="javax.persistence.schema-generation.database.action"
value="drop-and-create" />
</properties>
</persistence-unit>
</persistence>
DAO:
public static BooleanResponse isExistUser(String id, String first, String last) {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpa");
EntityManager em = emf.createEntityManager();
try {
System.out.println("UserDAO, isExistUser: id: " + id + " first: " + first + " last: " + last);
User u = em.find(User.class, id);
if (u != null)
return new BooleanResponse(u.getFirst_name().equals(first) && u.getLast_name().equals(last));
return new BooleanResponse(false);
} finally {
em.close();
}
}