2016-08-15 5 views
0

エラー: Session型のget(Class、Serializable)メソッドは、引数(Class、int)に適用できません。テーブルからデータをフェッチしたいときにこのエラーが発生しました。誰でも助けてくれますか?

public class Test { 

    public static void main(String[] args) { 

     Configuration config = new Configuration().configure(); 
     SessionFactory factory = config.buildSessionFactory(); 
     Session session = factory.openSession(); 
     Transaction trx = session.beginTransaction(); 
     Sample sample = new Sample(); 
     sample = (Sample)session.get(Sample.class, 1); 
     trx.commit(); 
     System.out.println("success"); 
     session.close(); 
    } 
} 

public class Sample { 
    private Integer id; 
    private String name; 

    public Integer getId() { 
     return id; 
    } 
    public void setId(Integer id) { 
     this.id = id; 
    } 
    public String getName() { 
     return name; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 
} 
+1

エラーで説明したように、2番目のパラメータはIntegerのみにすることはできませんが、以前はSerializableとして定義しておく必要があります。私の最善のアドバイスは、[this class](https://github.com/luciomartinez/hibernate/blob/master/Registro/src/registro/dao/GenericDaoImpl.java)として、この通常のクエリの汎用実装を記述することです。インラインでソリューションを試してみたい場合は、[SerializationUtils]の 'serialize'メソッドを使用しているかもしれません(https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache /commons/lang/SerializationUtils.html)クラスはうまくいくかもしれませんが、それについてはわかりません。これはあなたのために動作しない場合 – Lucio

+0

、私は – Lucio

答えて

0

あなたは、単純なint型の

... 
sample = (Sample)session.get(Sample.class, new Integer(1)); 
... 

代わりに使用する必要があります。

+0

uは –

+0

が、それはあなたのために働くんでしたstreetturtleありがとう後で:-)答えに少しクリーナーを書き留めたいですか?はいの場合は、回答を受け入れたものとしてマークしてください。 – streetturtle

関連する問題