Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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
Spring 我无法使用sessionFactory.getCurrentSession().load(…)从hibernate中的数据库中获取行_Spring_Hibernate - Fatal编程技术网

Spring 我无法使用sessionFactory.getCurrentSession().load(…)从hibernate中的数据库中获取行

Spring 我无法使用sessionFactory.getCurrentSession().load(…)从hibernate中的数据库中获取行,spring,hibernate,Spring,Hibernate,我在postgres中有一个数据库,我正在使用spring 3和hibernate 3,问题是当试图从数据库中删除或获取一行时,这里是我正在使用的类,ohh查询后的另一件事,a没有任何错误,唯一的一件事是类用户为null @Repository("userDao") public class UserDao implements IUserDao { @Autowired private SessionFactory sessionFactory; public vo

我在postgres中有一个数据库,我正在使用spring 3和hibernate 3,问题是当试图从数据库中删除或获取一行时,这里是我正在使用的类,ohh查询后的另一件事,a没有任何错误,唯一的一件事是类用户为null

@Repository("userDao")
public class UserDao implements IUserDao {

    @Autowired
    private SessionFactory sessionFactory;

    public void SaveUser(User user) {
    sessionFactory.getCurrentSession().save(user);
    }
    @SuppressWarnings("unchecked")
    public List<User> ListUsers() {
        List<User> users = (List<User>) sessionFactory.getCurrentSession().createCriteria(User.class).list();
        return users;
    }
    public User GetUserById(Integer id) {               
        User user = (User) sessionFactory.getCurrentSession().load(User.class, id);
        return user;
    }
}
//有干将和二传手

这是hibernate在控制台中显示的内容 User User=UsersessionFactory.getCurrentSession.loadUser.class,id已执行


Hibernate:从mrbean user0中选择user0.id作为id0\u 0\u,user0\u.password作为password0\u 0\u,user0\u.user\u name作为user3\u 0\u,其中user0\u.id=?

我将使用get而不是load,因为load创建了用户的代理see Hibernate ref doc
所以我会尝试:User User=User sessionFactory.getCurrentSession.getUser.class,id

您是否已检查数据库中是否有一行具有要传递给方法的标识符?。。。。是的,数据库中有一行带有标识符id。最好从明显的检查开始:是的,当然,你是对的,但我经常去bug,一切看起来都很好。你知道从数据库中获取行的另一种方法吗?请发布User.class的源代码,如果有单独的映射,请发布它的映射,以及hibernate在调用getCurrentSession.load时使用的查询文本。非常感谢,它现在可以工作了。我可以从数据库中获得使用,但当我执行getCurrentSession.deleteuser时,它不起作用。只与HQL一起工作,…嗯,getCurrentSession的那些方法,我认为最好不要使用,你认为呢,有什么建议吗???或者我开始学习HQL。谢谢大家的评论,真的很有用。只要给我们你的删除代码,我会尽力帮你。你的getCurrentSession没有问题。大多数情况下,您会将其分解为一个私有方法,如:private Session getSession{return sessionFactory.getCurrentSession;}
@Entity
@Table(name = "mrbean")
public class User {

@Id
@GeneratedValue (strategy = GenerationType.AUTO)
@Column (name = "id")
private Integer id;

@NotNull (message = "not null")
@NotEmpty (message = "empty")
@Column (name = "user_name", length = 20, nullable = false, unique = true)
private String userName;

@NotNull 
@NotEmpty (message = "empty password")
@Size (min = 7, max = 20, message = "La contraseña debe tener entre 7 y 20 caracteres")
@Column (name = "password", length = 20, nullable = false)
private String password;