Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java EntityManager.persist没有任何效果_Java_Jpa_Eclipselink_Payara_Java Ee 8 - Fatal编程技术网

Java EntityManager.persist没有任何效果

Java EntityManager.persist没有任何效果,java,jpa,eclipselink,payara,java-ee-8,Java,Jpa,Eclipselink,Payara,Java Ee 8,我正在使用JavaEE开发一个API(JAXRS),并试图实现JPA。为此,据我所知,我正在使用EclipseLink,我的应用程序“部署在Payara服务器上” 当我尝试使用EntityManager中的persist方法时,不会发生任何事情,也不会出现错误消息或其他情况 这是我的道课: 包shareloc.model.dao; 导入javax.persistence.*; 导入javax.persistence.criteria.CriteriaBuilder; 导入javax.persis

我正在使用JavaEE开发一个API(JAXRS),并试图实现JPA。为此,据我所知,我正在使用EclipseLink,我的应用程序“部署在Payara服务器上”

当我尝试使用EntityManager中的persist方法时,不会发生任何事情,也不会出现错误消息或其他情况

这是我的道课:

包shareloc.model.dao;
导入javax.persistence.*;
导入javax.persistence.criteria.CriteriaBuilder;
导入javax.persistence.criteria.CriteriaQuery;
导入javax.persistence.criteria.Root;
导入java.util.List;
导入java.util.Optional;
导入静态shareloc.ServletContextListenerImpl.createEntityManager;
公共抽象类DAO{
@PersistenceContext(unitName=“MariaDB”)
受保护的实体管理器em;
私有类实体类;
公共DAO(类entityClass){
this.entityClass=entityClass;
this.em=getEntityManager();
}
私有EntityManager getEntityManager(){
if(em==null){
em=createEntityManager();
}
返回em;
}
公共T创建(T实体){
em.persist(实体);
返回实体;
}
公共无效更新(T实体){
合并(实体);
}
公共作废删除(T实体){
em.remove(em.merge(entity));
}
公共可选findById(对象id){
返回可选的.ofNullable(em.find(entityClass,id));
}
公共列表findAll(){
CriteriaBuilder cb=em.getCriteriaBuilder();
CriteriaQuery cq=cb.createQuery(entityClass);
Root=cq.from(entityClass);
选择(根);
返回em.createQuery(cq.getResultList();
}
}
EJB用户:

包shareloc.ejb;
导入javax.persistence.*;
@实体
@表(name=“user”)
公共类用户{
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
@列(name=“user\u id”)
私有int用户id;
@列(name=“pseudo”)
私有字符串伪;
@列(name=“email”)
私人字符串电子邮件;
@列(name=“password”)
私有字符串密码;
@列(name=“firstname”)
私有字符串名;
@列(name=“lastname”)
私有字符串lastname;
公共用户(){}
公共用户(字符串伪、字符串电子邮件、字符串密码、字符串名字、字符串姓氏){
this.pseudo=pseudo;
this.email=电子邮件;
this.password=密码;
this.firstname=firstname;
this.lastname=lastname;
}
公共用户(int userId、字符串pseudo、字符串email、字符串密码、字符串firstname、字符串lastname){
this.userId=userId;
this.pseudo=pseudo;
this.email=电子邮件;
this.password=密码;
this.firstname=firstname;
this.lastname=lastname;
}
public int getUserId(){
返回用户标识;
}
public void setUserId(int userId){
this.userId=userId;
}
公共字符串getPseudo(){
返回伪;
}
公共void setPseudo(字符串pseudo){
this.pseudo=pseudo;
}
公共字符串getEmail(){
回复邮件;
}
公用电子邮件(字符串电子邮件){
this.email=电子邮件;
}
公共字符串getPassword(){
返回密码;
}
public void setPassword(字符串密码){
this.password=密码;
}
公共字符串getFirstname(){
返回名字;
}
public void setFirstname(字符串firstname){
this.firstname=firstname;
}
公共字符串getLastname(){
返回姓氏;
}
public void setLastname(字符串lastname){
this.lastname=lastname;
}
}
调用DAO创建方法的方法:

publicstatichashmap寄存器(字符串email、字符串pseudo、字符串密码、字符串firstname、字符串lastname){
HashMap formError=新建HashMap();
formError.putAll(checkEmail(email));
formError.putAll(checkPassword(password));
formError.putAll(checkPseudo(pseudo));
formError.putAll(checkFirstname(firstname));
formError.putAll(checkLastname(lastname));
if(formError.isEmpty()){
System.out.println(“表单错误空测试”);
创建(新用户(伪用户、电子邮件、密码、名字、姓氏));
}
返回表单错误;
}
身份验证根目录:

@POST
@路径(“寄存器”)
@产生(MediaType.APPLICATION_JSON)
公共响应寄存器(@QueryParam(“email”)字符串email,@QueryParam(“pseudo”)字符串pseudo,
@QueryParam(“password”)字符串password,@QueryParam(“firstname”)字符串firstname,
@QueryParam(“lastname”)字符串(lastname){
HashMap errorMsgs=AuthManager.register(电子邮件、伪码、密码、名字、姓氏);
if(errorMsgs.isEmpty()){
返回Response.ok().build();
}否则{
一般实体=
新通用实体(errorMsgs){};
返回Response.status(Response.status.BAD_请求).entity(entity.build();
}
}
ServletContextListener用于创建销毁em工厂的命令:

@WebListener
公共类ServletContextListenerImpl实现ServletContextListener{
私有静态实体管理器工厂emf;
//应用程序启动
@凌驾
public void contextInitialized(ServletContextEvent sce){
emf=Persistence.createEntityManagerFactory(“MariaDB”);
}
//应用程序已销毁
@凌驾
公共无效上下文已销毁(ServletContextEvent sce){
emf.close();
}
公共静态EntityManager createEntityManager(){
if(emf==null)
抛出新的NullPointerException(“上下文尚未初始化”);
返回emf.createEntityManager();
}
}
pom.xml:


4.0.0
unistra.iut神父
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <data-source>
        <name>java:global/mariadb</name>
        <class-name>org.mariadb.jdbc.MariaDbDataSource</class-name>
        <server-name>mysql.iutrs.unistra.fr</server-name>
        <port-number>3306</port-number>
        <database-name>sharelocda</database-name>
        <user></user>
        <password></password>
    </data-source>


    <listener>
        <listener-class>
            shareloc.ServletContextListenerImpl
        </listener-class>
    </listener>
</web-app>
[2020-11-14T17:38:44.418+0100] [Payara 5.2020.5] [WARNING] [] [javax.enterprise.resource.resourceadapter.org.glassfish.jdbc.deployer] [tid: _ThreadID=125 _ThreadName=admin-thread-pool::admin-listener(1)] [timeMillis: 1605371924418] [levelValue: 900] [[
  Value of maxPoolSize Given, -1, was outside the bounds, default value of 32 will be used - PLEASE UPDATE YOUR VALUE]]

[2020-11-14T17:38:44.419+0100] [Payara 5.2020.5] [WARNING] [] [javax.enterprise.resource.resourceadapter.org.glassfish.jdbc.deployer] [tid: _ThreadID=125 _ThreadName=admin-thread-pool::admin-listener(1)] [timeMillis: 1605371924419] [levelValue: 900] [[
  Value of steadyPoolSize Given, -1, was outside the bounds, default value of 8 will be used - PLEASE UPDATE YOUR VALUE]]

[2020-11-14T17:38:44.499+0100] [Payara 5.2020.5] [INFO] [] [org.eclipse.persistence.session./file:/D:/Utilisateurs/razor/Documents/Etudes/IUT/IUT Robert Schuman/LP CDAD/LP1 - Développement Service Web/ShareLoc-API/target/ShareLoc-API-1.0-SNAPSHOT/WEB-INF/classes/_MariaDB] [tid: _ThreadID=125 _ThreadName=admin-thread-pool::admin-listener(1)] [timeMillis: 1605371924499] [levelValue: 800] [[
  EclipseLink, version: Eclipse Persistence Services - 2.7.7.payara-p2]]

[2020-11-14T17:38:45.791+0100] [Payara 5.2020.5] [INFO] [] [fish.payara.micro.cdi.extension.ClusteredCDIEventBusImpl] [tid: _ThreadID=125 _ThreadName=admin-thread-pool::admin-listener(1)] [timeMillis: 1605371925791] [levelValue: 800] [[
  Clustered CDI Event bus initialized]]

[2020-11-14T17:38:45.856+0100] [Payara 5.2020.5] [INFO] [] [org.glassfish.soteria.servlet.SamRegistrationInstaller] [tid: _ThreadID=125 _ThreadName=admin-thread-pool::admin-listener(1)] [timeMillis: 1605371925856] [levelValue: 800] [[
  Initializing Soteria 1.1-b01.payara-p5 for context '/ShareLoc-API-1.0-SNAPSHOT']]

[2020-11-14T17:38:45.947+0100] [Payara 5.2020.5] [INFO] [jsf.config.listener.version] [javax.enterprise.resource.webcontainer.jsf.config] [tid: _ThreadID=125 _ThreadName=admin-thread-pool::admin-listener(1)] [timeMillis: 1605371925947] [levelValue: 800] [[
  Initializing Mojarra |version.string| for context '/ShareLoc-API-1.0-SNAPSHOT']]

[2020-11-14T17:38:46.062+0100] [Payara 5.2020.5] [FINE] [] [org.eclipse.persistence.default] [tid: _ThreadID=125 _ThreadName=admin-thread-pool::admin-listener(1)] [timeMillis: 1605371926062] [levelValue: 500] [[
  SAXParserFactory instance: com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl@72289c40]]

[2020-11-14T17:38:46.114+0100] [Payara 5.2020.5] [INFO] [AS-WEB-GLUE-00172] [javax.enterprise.web] [tid: _ThreadID=125 _ThreadName=admin-thread-pool::admin-listener(1)] [timeMillis: 1605371926114] [levelValue: 800] [[
  Loading application [ShareLoc-API-1.0-SNAPSHOT] at [/ShareLoc-API-1.0-SNAPSHOT]]]

[2020-11-14T17:38:46.147+0100] [Payara 5.2020.5] [INFO] [] [javax.enterprise.system.core] [tid: _ThreadID=125 _ThreadName=admin-thread-pool::admin-listener(1)] [timeMillis: 1605371926147] [levelValue: 800] [[
  ShareLoc-API-1.0-SNAPSHOT was successfully deployed in 2 990 milliseconds.]]

[2020-11-14T17:39:01.341+0100] [Payara 5.2020.5] [FINE] [] [org.eclipse.persistence.session./file:/D:/Utilisateurs/razor/Documents/Etudes/IUT/IUT Robert Schuman/LP CDAD/LP1 - Développement Service Web/ShareLoc-API/target/ShareLoc-API-1.0-SNAPSHOT/WEB-INF/classes/_MariaDB.sql] [tid: _ThreadID=111 _ThreadName=http-thread-pool::http-listener-1(4)] [timeMillis: 1605371941341] [levelValue: 500] [[
  SELECT user_id, email, firstname, lastname, password, pseudo FROM user WHERE (email = ?)
    bind => [test@gmail.fr]]]

[2020-11-14T17:39:01.429+0100] [Payara 5.2020.5] [INFO] [] [] [tid: _ThreadID=111 _ThreadName=http-thread-pool::http-listener-1(4)] [timeMillis: 1605371941429] [levelValue: 800] [[
  form error empty test]]