【发布时间】:2011-05-03 18:20:17
【问题描述】:
我是 JPA+Hibernate+Spring 的新手(但我对 Web 应用程序和 SQL 的 Spring 框架有相当多的经验)所以我的问题可能不是在 JPA 中使用正确的技术术语。
我有一个典型的User POJO,它用javax.persistence.* 注释,我根据我发现的示例设置了 hibernate+hsqldb,这些示例目前工作正常。 User 类看起来像这样:
@Entity
@Table(name = "USER")
public class User {
private Long id;
private String name;
// Ignore id getter and setter methods
@Column(name = "USER_NAME")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
这是我的UserDAOImpl 课程。
public class UserDAOImpl implements UserDAO {
private HibernateTemplate hibernateTemplate;
public void setSessionFactory(SessionFactory sessionFactory) {
this.hibernateTemplate = new HibernateTemplate(sessionFactory);
}
@Override
public void saveUser(User user) {
hibernateTemplate.saveOrUpdate(user);
}
// This method is made to return only one User object.
@Override
@SuppressWarnings("unchecked")
public User getGiUser() {
return hibernateTemplate.find("from User where User_Name ='gi'").get(0);
}
}
通过使用getGiUser 方法,我可以从数据库中获取持久对象(如果我理解正确的话)。我的问题是是否可以使User.setName() 方法在调用时立即提交到数据库而无需手动保存?我应该如何或从哪里开始或了解这一点?
【问题讨论】:
标签: java hibernate spring jpa persistence