2013-04-25 2 views
1

Я пытался создать небольшой спящий/весенний проект MVC.Спящий режим, не сохраняющий объект в базе данных

У меня появилась страница Spring .jsp для отображения данных из базы данных, но я не могу понять, как спящий режим сохранять объекты в базе данных.

Вот мой (отношение) Код:

GroupDAOImpl.java (метод)

@Override 
public void saveGroup(Group group){ 
    Session session = sessionFactory.openSession(); 
    Transaction transaction = session.beginTransaction(); 
    session.save(group); 

    transaction.commit(); 
    session.close(); 
} 

HelloController.java Метод:

public ModelAndView add(HttpServletRequest request, HttpServletResponse response, Group group) throws Exception { 
    groupDAO.saveGroup(group); 
    return new ModelAndView("redirect:list.htm"); 
} 

страница JSP:

<form:form action="add.htm" commandName="group"> 
<table> 
    <tr> 
     <td>group Name :</td> 
     <td><form:input path="name"/></td> 
    </tr> 

    <tr> 
     <td colspan="2"><input type="submit" value="Register"></td> 
    </tr> 
</table> 

Вход с сервера:

id = 2 
name = "jjjj" 

Любые идеи:

Hibernate: insert into groups (id, name, shoppingList_id) values (default, ?, ?) 

Debugger Значение "группы" в GroupDAOImpl метод сохранения? Очень ценим!

+1

Как я понимаю, проблема в том, что данные не сохраняются в базе данных? Как определяется ваш источник данных - весной или он независим от Spring. Какую базу данных вы используете? –

+0

Что класс 'Group' выглядит? Является ли объект уже существующим или это новый экземпляр? Как он сохраняется в DAO? – Bart

+0

Я использую базу данных дерби, а база данных настроена весной ' <свойство name = "url" value = "jdbc: derby: // localhost: 1527/hiber-db" /> ' – pascalwhoop

ответ

0

На самом деле мы видим, запросы SQL на бревне:

Hibernate: insert into groups (id, name, shoppingList_id) values (default, ?, ?) 

Я думаю, вы не объясните хорошо, и вы ожидаете, что это запрос на обновление SQL вашего существующего объекта.

Если вы хотите обновить объект, экземпляр группы, предоставленный связыванием SpringMVC, должен знать идентификатор объекта. На самом деле форма dosn't не отправляет идентификатор группы, поэтому ваше приложение не может знать, какой объект следует обновить.

И даже зная ID, это было бы Session.merge и не Session.save звонить :)

+0

ну вот в базе данных еще 1 элемент, но я хочу добавить еще один, не обновляя существующий. id еще не установлен, поскольку он должен быть установлен спящим путем через @generatedValue (strategy = GenerationType.AUTO) ' – pascalwhoop

0

Насколько я знаю, зимуют свойства должны начинаться с префикса спячки, как

<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" /> 

исправить это, это может быть вашей проблемой

Смежные вопросы