2016-09-13 6 views
0

Processorオブジェクトをデータベースから値で取得しようとしています。スキーマがid、value、type_idのデータベースにProcessorテーブルがあります。私はProcessorServiceをDAOとして持っています。Hibernate - 列のdouble値でオブジェクトを見つける

Processor processor = processorService.findByValue(Double.valueOf(cpu)); 

データベースには既存のプロセッサオブジェクトがあります。プロセッサがNULLの場合私は二重の価値を比較することに問題があると思う。これは、他のクラスのオブジェクトでも機能するためです。

enter image description here

これはfindByValue()方法

public Processor findByValue(Double value) { 
    Criteria criteria = createEntityCriteria(); 
    criteria.add(Restrictions.eq("value", value)); 
    return (Processor) criteria.uniqueResult(); 
} 

protected Criteria createEntityCriteria(){ 
    return getSession().createCriteria(persistentClass); 
} 

[編集]

私はfindByValue()を呼び出すと、私は取得していますです。

type mismatch can't assign object value to primitive 

プロセッサクラス

public class Processor { 
    public static final int serialId = 104; 

    private int id; 
    private Double value; 
    private Type typeId; 
    private Collection<Smartphone> processorId; 

    @Id 
    @Column(name = "id", unique = true, nullable = false) 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    public int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 

    @Basic 
    @Column(name = "value", precision = 4, scale = 2, columnDefinition="DECIMAL(4,2)") 
    public Double getValue() { 
     return value; 
    } 

    public void setValue(Double value) { 
     this.value = value; 
    } 
} 
+0

を試してみて何が悪いですの? –

+0

findByValueを呼び出すとnullが返されますが、オブジェクトが存在します。 – Beata92

+0

あなたはあなたの質問にそれを追加する必要があります –

答えて

0

criteria.add(Restrictions.eq("value", value.doubleValue()));

+0

動作しません。 – Beata92

関連する問題