Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.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 jpa中的集合对象_Java_Hibernate_Jpa - Fatal编程技术网

Java jpa中的集合对象

Java jpa中的集合对象,java,hibernate,jpa,Java,Hibernate,Jpa,在我的项目中插入技术jpa之前,我在数据库中有一个数据对象数组。它运行正常 但现在我使用jpa,他告诉我“空指针异常” 这是我的第一个选择函数 public Nodes select(HttpServletRequest request) throws Dao_exception { try { Class.forName( "com.mysql.jdbc.Driver" ); } catch ( ClassNo

在我的项目中插入技术jpa之前,我在数据库中有一个数据对象数组。它运行正常

但现在我使用jpa,他告诉我“空指针异常”

这是我的第一个选择函数

public Nodes select(HttpServletRequest request) throws Dao_exception 
    {
        try 
        {
            Class.forName( "com.mysql.jdbc.Driver" );
        } catch ( ClassNotFoundException e ) 
        {
        }

        String url = "jdbc:mysql://localhost/akinator";
        String utilisateur = "root";
        String motDePasse = "root";
        Connection connexion = null;
        Statement statement = null;
        ResultSet resultset = null;

        try
        {
            connexion = (Connection) DriverManager.getConnection( url, utilisateur, motDePasse );
            statement =  (Statement) connexion.createStatement();
            resultset = (ResultSet) statement.executeQuery(SQL_SELECT);

            List<Nodes> nodeList = new ArrayList<Nodes>();
              while (resultset.next()) 
              {
                  Nodes node = new Nodes( resultset.getLong("id"),
                                          resultset.getString("question"),
                                          resultset.getString("result"),
                                          resultset.getLong("id_left_node_children"),
                                          resultset.getLong("id_right_node_children"));

                 nodeList.add(node);
              }
              nodes = nodeList.toArray(new Nodes[nodeList.size()]);

        }
        catch (SQLException e)
        {
            e.printStackTrace();
        }
        return nodes[0];
    }
这里是我的类节点

@Entity
@Table (name = "node")
public class Nodes
{
    @Id
    @GeneratedValue (strategy = GenerationType.IDENTITY)
    @Column(name="id")
    private Long id_node;

    @Column (name = "question")
    private String question;

    @Column ( name = "result")
    private String result;

    @Column ( name = "id_left_node_children")
    private Long id_left_node_children;

    @Column ( name = "id_right_node_children")
    private Long id_right_node_children;

    Nodes left;
    Nodes right;

    private final static Map<Long, Nodes> nodes=new HashMap<Long,Nodes>();

    public Nodes(Long id, String question, String result, Long id_left_node_children, Long id_right_node_children) 
    {
           this.id_node=id;
           this.question=question;
           this.result=result;
           this.id_left_node_children=id_left_node_children;
           this.id_right_node_children=id_right_node_children;
           nodes.put(id, this);
    }
我的列表是如何创建的? 谢谢

太好了

但现在我有一个新的错误

这是我的新错误

java.lang.Error: Unresolved compilation problem: 
    Type mismatch: cannot convert from List<Nodes> to Nodes
    at servlet.Game.doGet(Game.java:40)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188)
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
    at java.lang.Thread.run(Thread.java:744)
java.lang.Error:未解决的编译问题:
类型不匹配:无法从列表转换为节点
在servlet.Game.doGet(Game.java:40)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
位于org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
位于org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
位于org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
位于com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
位于org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357)
位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260)
位于com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188)
位于org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
位于org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
位于org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
位于org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
位于org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
在org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)上
在org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
位于org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
位于org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
位于org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
位于org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
位于org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
位于org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
位于org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
位于org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
位于org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
运行(Thread.java:744)
这一行是错误的:

cursor=nodess.select(请求).get(1)

您需要使用EJB,只有在EJB中,EntityManager才可用:


cursor=nodes\u dao.select(请求).get(1)

您可以粘贴错误堆栈跟踪程序吗?您应该告诉我们从哪里获得NullPointerException。很抱歉,我的null指针异常出现在“nodeList=em.createQuery(“从节点n中选择n”)。getResultList();”上。这应该不会失败。你确定
em
不为空吗?只要检查em不为空,否则任何对象都不能抛出这样的例外
@Entity
@Table (name = "node")
public class Nodes
{
    @Id
    @GeneratedValue (strategy = GenerationType.IDENTITY)
    @Column(name="id")
    private Long id_node;

    @Column (name = "question")
    private String question;

    @Column ( name = "result")
    private String result;

    @Column ( name = "id_left_node_children")
    private Long id_left_node_children;

    @Column ( name = "id_right_node_children")
    private Long id_right_node_children;

    Nodes left;
    Nodes right;

    private final static Map<Long, Nodes> nodes=new HashMap<Long,Nodes>();

    public Nodes(Long id, String question, String result, Long id_left_node_children, Long id_right_node_children) 
    {
           this.id_node=id;
           this.question=question;
           this.result=result;
           this.id_left_node_children=id_left_node_children;
           this.id_right_node_children=id_right_node_children;
           nodes.put(id, this);
    }
java.lang.NullPointerException
    at dao.Node_dao.select(Node_dao.java:32)
    at servlet.Game.doGet(Game.java:45)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188)
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
    at java.lang.Thread.run(Thread.java:744)
java.lang.Error: Unresolved compilation problem: 
    Type mismatch: cannot convert from List<Nodes> to Nodes
    at servlet.Game.doGet(Game.java:40)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188)
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
    at java.lang.Thread.run(Thread.java:744)