Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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 如何通过当前字段从数据库中检索对象_Java_Hibernate_Spring Mvc - Fatal编程技术网

Java 如何通过当前字段从数据库中检索对象

Java 如何通过当前字段从数据库中检索对象,java,hibernate,spring-mvc,Java,Hibernate,Spring Mvc,我使用Hibernate 4并拥有实体项: @Entity @Table(name = "cart") public class Item { @Id @GeneratedValue private int id; @OneToOne(targetEntity = Product.class) private Product product; @Column private int count // Getters and setters here } 在我的DAO实现中,我希望通过引

我使用Hibernate 4并拥有实体

@Entity
@Table(name = "cart")
public class Item {

@Id
@GeneratedValue
private int id;

@OneToOne(targetEntity = Product.class)
private Product product;

@Column
private int count

// Getters and setters here
}
在我的DAO实现中,我希望通过引用字段product从db中获取对象并对其进行更新。我试试这个:

public void addItem(Item item) {

    int productId = item.getProduct().getId();

    Session session = sessionFactory.getCurrentSession();

    Item temp = (Item) session.get(Item.class, productId);

    temp.setCount(100);

    session.saveOrUpdate(temp);
}
这段代码通过id查找对象,但我需要通过productId查找对象


如何将标准添加到此代码中?

假设:产品中的id为“id”

或使用别名:

Item temp = (Item) session.createCriteria(Item.class)
                      .createAlias("product", "p")
                      .add(Restrictions.eq("p.id", productId))
                      .uniqueResult();

首先告诉我们什么不起作用,以及到目前为止您尝试了什么。当数据库中不存在对象时,会出现java.lang.NullPointerException。如何验证异常?从哪里获得NPE?抱歉,我不明白什么是NPE。请发布代码并告诉我们NullPointerException发生在哪一行。我只是忘记了验证temp。如果(temp==null){temp=item},我会这样做。它起作用了!非常感谢你。
Item temp = (Item) session.createCriteria(Item.class)
                      .createAlias("product", "p")
                      .add(Restrictions.eq("p.id", productId))
                      .uniqueResult();