см. I m havving user.java для информации о пользователе.Как вставить данные в базу данных с помощью spring + hibernate?
@Entity(name = "user")
@Table(name = "user")
public class User {
@Id
@Column(name = "id")
private String id;
@Column(name = "password")
private String password;
//getter and setter for this..
}
это мой userdao
public class UserDao {
public interface UserDAO {
public String insert(User user);
}
}
и это класс осущ для вставки в базу данных увидеть это был мой code.please проверить его и скажите мне, что я делаю неправильно
@Repository
@Transactional
public class UserImpl implements UserDAO {
private DataSource dataSource;
@Autowired
SessionFactory sessionFactory;
@Resource(name = "sessionFactory")
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
@Override
public String insert(User use) {
Session session = this.sessionFactory.openSession();
try{
Session sess = this.sessionFactory.getCurrentSession();
session.save(reg);
return (String)user.getUserName();
}catch(Exception e){
System.out.println("in catch"+e.getMessage());
e.printStackTrace();
}
}
}
}
и в моем контроллере после успешной регистрации im, вставляя данные в базу данных
userDao.insert(user);
но я не получаю вывод означает, что никакие данные не вставляются в базу данных.что это ..? это моя конфигурация MVC
<context:component-scan base-package="com.user.xyz" />
<mvc:annotation-driven />
<mvc:resources mapping="/resources/**" location="/resources/images/, /resources/css/" />
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/" />
<property name="suffix" value=".jsp" />
</bean>
Я подозреваю, что вы можете просто нужно добавить '@ Transactional' аннотацию к вашему' insert' метода. Однако у вас есть объект JPA, поэтому есть причина, почему вы не используете диспетчер объектов? Вам не нужно прикасаться к сеансам Hibernate. Также обратите внимание, что если вы добавите Spring Data в свой проект, вы можете удалить свою реализацию и получить полный объем загрузки «бесплатно». :) – Steve
видеть, что это был мой код.пожалуйста, проверьте его и скажите мне, что я делаю неправильно – user3189357
Неправильно как таковое ... просто есть более простые способы (меньше кода). В этом руководстве приведен краткий пример использования Spring Data: http://spring.io/guides/gs/accessing-data-jpa/ ... В основном вы добавляете данные Spring в свои зависимости и изменяете свой интерфейс для расширения CrudRepository или JpaRepository. Тогда вам не нужно писать свою собственную реализацию DAO. – Steve