2015-01-08 2 views
0

Я довольно новый весной, и у меня есть следующие сомнения. В веб-приложения у меня есть следующий класс сущностей, отображающих таблицы базы данных:Могу ли я вставить экземпляр класса модели, аннотированный с @Entity, в контроллер с использованием Spring?

@Entity 
@Table(name = "KM_PROJECT_INFO") 
public class KM_ProjectInfo implements Serializable { 

    @Id 
    @GeneratedValue 
    private Long idProjectInfo; 

    @Column(name = "name") 
    private String name; 

    @Column(name = "technology") 
    private String technology; 

    @ManyToOne 
    @JoinColumn(name = "idCountry") 
    private KMCountry country; 

    @Column(name = "power") 
    private long power; 

    @Column(name = "cod") 
    private String cod; 

    @ManyToOne 
    @JoinColumn(name = "idProjectInfoStatus") 
    private KM_ProjectInfoStatus status; 

    @Column(name = "folderTech") 
    private long folderTech; 

    @Column(name = "folderProject") 
    private long folderProject; 

    // GETTER & SETTER 
} 

В представлении есть форма, где пользователь может вставить значение полей предыдущего класса сущностей. Когда пользователь нажимает кнопку отправки этой формы, выполняется действие контроллера (в конкретном случае это контроллер действия Struts 2, но я думаю, что это не важно).

В этом действии я должен получить значение, вставленное пользователем в поля формы, и использовать эти значения для установки совпадающих полей предыдущего класса сущности, после чего я должен сохранить его в БД с помощью Hibernate.

Так что я сомневаюсь: предыдущий класс объекта был записан с использованием @Entity аннотация. Могу ли я просто ввести его в контроллер? Могу ли я вставить экземпляр класса, записанного с помощью @Entity?

Tnx

+0

Если вы используете шаблон mvc, то он может сломать этот узор. –

ответ

1

Вы можете сделать это произойдет», не будет происходить автоматически, как @Entity не помечает класс, чтобы быть весной фасоли. Вы можете сделать его компонентом Spring, но Spring Framework возьмет на себя управление жизненным циклом объекта сущности, который должен быть исключительной ролью структуры JPA. Сделать эту работу разумным способом было бы ужасной борьбой.

К счастью для вас, из того, что вы описали, вам не нужно это делать, просто создайте экземпляр вашего объекта, заполните его параметрами формы и передайте объект вашей службе или DAO.

0

Вы просто должны создать объект с помощью простого создания объекта Java:

KM_ProjectInfo obj = new KM_ProjectInfo(); 

И затем использовать сеттер метод для установки свойств и делать операции с базой данных. Вам не нужно использовать создание весеннего боба.

0

Вам не нужно вводить это в качестве пружинного компонента в ваш контроллер.

  • Просто создайте экземпляр объекта.
  • Задайте поля сущности в соответствии с параметрами формы.
  • Сохранять сущность в БД.
Смежные вопросы