0

私は以下のようにオブジェクトの関連付けを持つPOJOクラスを持っています。私はNULLポインタ例外を取得し、私のメインクラスを実行nullポインター例外criteria.list()

誰かが私がここで何が悪かったのか理解するのに助けてください。

まずPOJOクラス

@Entity 
@Table(name = "club") 

public class Club implements Serializable{ 
    @Id 
    @GeneratedValue 
    @Column(name = "clubId") 
    private Integer clubId; 

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

    @OneToMany(fetch = FetchType.LAZY,mappedBy = "club") 
     private Set<Team> team=new HashSet<Team>(0); 

セカンドPOJOクラス

@Entity 
@Table(name="team") 
public class Team implements Serializable{ 

    @Id 
    @GeneratedValue 
    @Column(name="teamid") 
    private Integer teamId; 

    @Column(name="teamname") 
    private String teamName; 

    @ManyToOne(fetch = FetchType.LAZY) 
    @JoinColumn(name = "clubid", nullable = false, insertable = false, updatable = false) 
    private Club club; 

メインクラス:

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 
import java.util.List; 
import java.util.Set; 

import org.hibernate.Criteria; 
import org.hibernate.FetchMode; 
import org.hibernate.Session; 
import org.hibernate.SessionFactory; 
import org.hibernate.Transaction; 
import org.hibernate.criterion.Projection; 
import org.hibernate.criterion.Projections; 

public class CriteriaExecution { 

    public static void main(String[] args) { 

     Session session=HibernateUtil.getSessionFactory().openSession(); 
     //Transaction tx = session.beginTransaction(); 
     Criteria criteria = session.createCriteria(Club.class); 
     criteria.setFetchMode("Team", FetchMode.JOIN); 
      List list=criteria.list(); 
      for(int i=0;i<list.size();i++) 
     { 
      System.out.println("Values"+list.get(i)); 
     } 
     // tx.commit(); 
     session.close(); 

    } 

} 

日食コンソールのスタックトレース:

Exception in thread "main" java.lang.NullPointerException 
    at com.mysql.jdbc.PreparedStatement.asSql(PreparedStatement.java:649) 
    at com.mysql.jdbc.PreparedStatement.asSql(PreparedStatement.java:587) 
    at com.mysql.jdbc.PreparedStatement.toString(PreparedStatement.java:4068) 
    at java.lang.String.valueOf(Unknown Source) 
    at java.lang.StringBuffer.append(Unknown Source) 
    at com.mysql.jdbc.trace.Tracer.printParameters(Tracer.aj:240) 
    at com.mysql.jdbc.trace.Tracer.printEntering(Tracer.aj:167) 
    at com.mysql.jdbc.trace.Tracer.entry(Tracer.aj:126) 
    at com.mysql.jdbc.trace.Tracer.ajc$before$com_mysql_jdbc_trace_Tracer$1$f51c62b8(Tracer.aj:45) 
    at com.mysql.jdbc.Connection.registerStatement(Connection.java) 
    at com.mysql.jdbc.Statement.<init>(Statement.java:270) 
    at com.mysql.jdbc.PreparedStatement.<init>(PreparedStatement.java:500) 
    at com.mysql.jdbc.Connection.clientPrepareStatement(Connection.java:2187) 
    at com.mysql.jdbc.Connection.prepareStatement(Connection.java:4829) 
    at com.mysql.jdbc.Connection.prepareStatement(Connection.java:4734) 
    at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$5.doPrepare(StatementPreparerImpl.java:161) 
    at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:182) 
    at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareQueryStatement(StatementPreparerImpl.java:159) 
    at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1859) 
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1836) 
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1816) 
    at org.hibernate.loader.Loader.doQuery(Loader.java:900) 
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:342) 
    at org.hibernate.loader.Loader.doList(Loader.java:2526) 
    at org.hibernate.loader.Loader.doList(Loader.java:2512) 
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2342) 
    at org.hibernate.loader.Loader.list(Loader.java:2337) 
    at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:124) 
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1662) 
    at org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:374) 
    at com.user.CriteriaExecution.main(CriteriaExecution.java:47) 
+0

は、iはlibに、ANTLR、 dom4jの中に追加する必要が何か、 hibernate-ですコモンズ・注釈、 hibernate-core-4.2.3.Final、 javaassist-3.1.4.0-GA-1.0.0-源、 のjavax.persistence、 jboss-logging-3.1.0.GA、 JTA-1_1 、 mysql-connector-java – Thiru

+0

質問にライブラリのリストを追加してください。バージョンを提供する( 'commons-annotations'など)。また、 'HibernateUtil'も追加してください。 –

+0

簡単な条件クエリはfetchステートメントなしで機能しますか? – carbontax

答えて

1

あなたが判断基準ではなく、タイプフィールドを示す必要があります:私は瓶の下にリストされているこの多くを追加した

criteria.setFetchMode("team", FetchMode.JOIN); 
+0

はまだ私もチーム – Thiru

+0

としてフィールドするチームから変更した後NPEを取得していますか? –

+0

はEAGERまだなって同じNPEを変更した後、私はその後、NPE – Thiru