简体   繁体   中英

The column name X was not found in this ResultSet - JPA

So I have this Company entity, I'm having an error every time I add a company. I'm using PostgreSQL for my database and I use double quote literals to map the columns of the table in pascalcase.

Company entity:

@Entity
@XmlRootElement
public class Company {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="\"Id\"")
    private Long id;
    @Column(name="\"Name\"")
    private String name;
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

Company Endpoint:

@Stateless
@Path("/companies")
public class CompanyEndpoint {
    @PersistenceContext(unitName = "primary")
    private EntityManager em;

    @POST
    @Consumes("application/json")
    public Response create(Company entity) {
        em.persist(entity);
        return Response.created(
                UriBuilder.fromResource(CompanyEndpoint.class)
                        .path(String.valueOf(entity.getId())).build()).build();
    }

    @DELETE
    @Path("/{id:[0-9][0-9]*}")
    public Response deleteById(@PathParam("id") Long id) {
        Company entity = em.find(Company.class, id);
        if (entity == null) {
            return Response.status(Status.NOT_FOUND).build();
        }
        em.remove(entity);
        return Response.noContent().build();
    }

    @GET
    @Path("/{id:[0-9][0-9]*}")
    @Produces("application/json")
    public Response findById(@PathParam("id") Long id) {
        TypedQuery<Company> findByIdQuery = em
                .createQuery(
                        "SELECT DISTINCT c FROM Company c WHERE c.id = :entityId ORDER BY c.id",
                        Company.class);
        findByIdQuery.setParameter("entityId", id);
        Company entity;
        try {
            entity = findByIdQuery.getSingleResult();
        } catch (NoResultException nre) {
            entity = null;
        }
        if (entity == null) {
            return Response.status(Status.NOT_FOUND).build();
        }
        return Response.ok(entity).build();
    }

    @GET
    @Produces("application/json")
    public List<Company> listAll(@QueryParam("start") Integer startPosition,
            @QueryParam("max") Integer maxResult) {
        TypedQuery<Company> findAllQuery = em
                .createQuery("SELECT DISTINCT c FROM Company c ORDER BY c.id",
                        Company.class);
        if (startPosition != null) {
            findAllQuery.setFirstResult(startPosition);
        }
        if (maxResult != null) {
            findAllQuery.setMaxResults(maxResult);
        }
        final List<Company> results = findAllQuery.getResultList();
        return results;
    }

    @PUT
    @Path("/{id:[0-9][0-9]*}")
    @Consumes("application/json")
    public Response update(@PathParam("id") Long id, Company entity) {
        if (entity == null) {
            return Response.status(Status.BAD_REQUEST).build();
        }
        if (id == null) {
            return Response.status(Status.BAD_REQUEST).build();
        }
        if (!id.equals(entity.getId())) {
            return Response.status(Status.CONFLICT).entity(entity).build();
        }
        if (em.find(Company.class, id) == null) {
            return Response.status(Status.NOT_FOUND).build();
        }
        try {
            entity = em.merge(entity);
        } catch (OptimisticLockException e) {
            return Response.status(Response.Status.CONFLICT)
                    .entity(e.getEntity()).build();
        }

        return Response.noContent().build();
    }
}

The last I'm seeing is org.postgresql.util.PSQLException: The column name "Id" was not found in this ResultSet.

Can someone explain what is wrong in my code. Thank you in advance.

Full sever log:

2017-02-09 13:37:40,650 ERROR [io.undertow.request] (default task-15) UT005023: Exception handling request to /test/rest/companies: org.jboss.resteasy.spi.UnhandledException: javax.ejb.EJBException: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not insert: [test.model.Company]

    at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:77)

    at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:220)

    at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:175)

    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:418)

    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:209)

    at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221)

    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)

    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)

    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)

    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)

    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)

    at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)

    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)

    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)

    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)

    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)

    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)

    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)

    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)

    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)

    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)

    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)

    at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)

    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)

    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)

    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)

    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)

    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)

    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)

    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)

    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)

    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)

    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)

    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)

    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)

    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)

    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)

    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:805)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

    at java.lang.Thread.run(Thread.java:745)

Caused by: javax.ejb.EJBException: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not insert: [test.model.Company]

    at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInOurTx(CMTTxInterceptor.java:187)

    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:277)

    at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:327)

    at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:239)

    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)

    at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)

    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)

    at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:47)

    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)

    at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:100)

    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)

    at org.jboss.as.ejb3.deployment.processors.StartupAwaitInterceptor.processInvocation(StartupAwaitInterceptor.java:22)

    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)

    at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64)

    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)

    at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:67)

    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)

    at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)

    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)

    at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:54)

    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)

    at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)

    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)

    at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)

    at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:636)

    at org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:61)

    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)

    at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)

    at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)

    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)

    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)

    at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:198)

    at org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:185)

    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)

    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)

    at org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:73)

    at org.jboss.tools.examples.rest.CompanyEndpoint$$$view398.create(Unknown Source)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:498)

    at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:139)

    at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:295)

    at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:249)

    at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:236)

    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:402)

    ... 43 more

Caused by: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not insert: [test.model.Company]

    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1692)

    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1602)

    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1608)

    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:1152)

    at org.jboss.as.jpa.container.AbstractEntityManager.persist(AbstractEntityManager.java:580)

    at org.jboss.tools.examples.rest.CompanyEndpoint.create(CompanyEndpoint.java:37)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:498)

    at org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52)

    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)

    at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:437)

    at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:82)

    at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:93)

    at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)

    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)

    at org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43)

    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)

    at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47)

    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)

    at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:437)

    at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:64)

    at org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:83)

    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)

    at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45)

    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)

    at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)

    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)

    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)

    at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:52)

    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)

    at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51)

    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)

    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:275)

    ... 87 more

Caused by: org.hibernate.exception.SQLGrammarException: could not insert: [test.model.Company]

    at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:106)

    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)

    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:109)

    at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:49)

    at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2803)

    at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3374)

    at org.hibernate.action.internal.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:81)

    at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:619)

    at org.hibernate.engine.spi.ActionQueue.addResolvedEntityInsertAction(ActionQueue.java:273)

    at org.hibernate.engine.spi.ActionQueue.addInsertAction(ActionQueue.java:254)

    at org.hibernate.engine.spi.ActionQueue.addAction(ActionQueue.java:299)

    at org.hibernate.event.internal.AbstractSaveEventListener.addInsertAction(AbstractSaveEventListener.java:317)

    at org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:272)

    at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:178)

    at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:109)

    at org.hibernate.jpa.event.internal.core.JpaPersistEventListener.saveWithGeneratedId(JpaPersistEventListener.java:67)

    at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:189)

    at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:132)

    at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:58)

    at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:775)

    at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:748)

    at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:753)

    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:1146)

    ... 118 more

Caused by: org.postgresql.util.PSQLException: The column name "Id" was not found in this ResultSet.

    at org.postgresql.jdbc.PgResultSet.findColumn(PgResultSet.java:2591)

    at org.postgresql.jdbc.PgResultSet.getLong(PgResultSet.java:2489)

    at org.jboss.jca.adapters.jdbc.WrappedResultSet.getLong(WrappedResultSet.java:1583)

    at org.hibernate.id.IdentifierGeneratorHelper.get(IdentifierGeneratorHelper.java:138)

    at org.hibernate.id.IdentifierGeneratorHelper.getGeneratedIdentity(IdentifierGeneratorHelper.java:73)

    at org.hibernate.dialect.identity.GetGeneratedKeysDelegate.executeAndExtract(GetGeneratedKeysDelegate.java:61)

    at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:42)

    ... 137 more

I suppose your program looks for a column named '"Id"', instead of 'Id'. You should change your annotation this way.

@Column(name="Id")
private Long id;

I speak Spanish and for this answer I use google translator: it marked me the same error but with java and the reason was to send through the rs a value that is not in your select query, for example ( "SELECT DISTINCT c FROM Company c ORDER BY c.id ", Company.class); Maybe the id is misspelled in the column and because it is not found when wanting to pass that data to another element, it marks the error.

this is my code:

String sql = "select p.nombre_paciente, p.apellido_paciente, p.nacimiento_paciente, p.edad_paciente, p.cedula_paciente, p.profesion_paciente,p.dlaboral_paciente,p.dparticular_paciente,p.tlaboral_paciente,p.tparticular_paciente,c.idcivil,c.tipo,**p.id_paciente** from paciente p inner join civil c on p.idcivil = c.idcivil where upper(nombre_paciente) like '%" + nombre.toUpperCase() + "%'"
                    + " order by id_paciente offset " + offset + " limit " + utiles.Utiles.REGISTROS_PAGINA;
    System.out.println("--->" + sql);
    try (PreparedStatement ps = Conexion.getConn().prepareStatement(sql)) {
        ResultSet rs = ps.executeQuery();
        String tabla = "";
        while (rs.next()) {
            tabla += "<tr>"
            + "<td>" + rs.getInt("id_paciente") + "</td>"
            + "<td>" + rs.getString("nombre_paciente") + "</td>"
            + "<td>" + rs.getString("apellido_paciente") + "</td>"
            + "<td>" + rs.getDate("nacimiento_paciente") + "</td>"
            + "<td>" + rs.getInt("edad_paciente") + "</td>"
            + "<td>" + rs.getString("cedula_paciente") + "</td>"
            + "<td>" + rs.getString("profesion_paciente") + "</td>"
            + "<td>" + rs.getString("dlaboral_paciente") + "</td>"
            + "<td>" + rs.getString("dparticular_paciente") + "</td>"
            + "<td>" + rs.getString("tlaboral_paciente") + "</td>"
            + "<td>" + rs.getString("tparticular_paciente") + "</td>"
            + "<td>" + rs.getInt("idcivil") + "</td>"
            + "<td>" + rs.getString("tipo") + "</td>"
            + "</tr>";

what was marked in bold was not there and when implementing it, the error disappeared. Ps .: I know it's a lot of text

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM