Spring Boot java.lang.IllegalStateException: JTA EntityManager не может использовать getTransaction () - PullRequest
0 голосов
/ 11 мая 2018

Я получаю JTA EntityManager не может использовать ошибку getTransaction () при попытке вызвать API DELETE. Не уверен, что мне не хватает конфигураций, связанных с JPA.

Questionnarie.java #

@Entity
@Table(name = "questionnaries")
public class Questionnarie {


@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="id_seq")
@SequenceGenerator(name = "id_seq", sequenceName="questionnaries_id_seq")
@Column(name = "id")
private Long id;


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


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

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

public Questionnarie() {}

public Questionnarie(@NotNull String personname, @NotNull String question, @NotNull String response) {
    super();
    this.personname = personname;
    this.question = question;
    this.response = response;
}
/* Not including GETTERS AND SETTERS for brevity */

QuestionnarieController.java #

@RequestMapping(method=RequestMethod.DELETE, value="/questionnaries/{id}")
    public void deleteQuestionnarie(@PathVariable Long id){

            questionnarieService.deleteQuestionnarie(id);
    }

QuestionnarieService.java

public void deleteQuestionnarie(Long id) {
        questionnarieRepository.deleteById(id);
    }

QuestionnarieRepository.java #

public void deleteById(Long id);

application.properties

spring.datasource.jndi-name=java:jboss/datasources/testDS

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect

1 Ответ

0 голосов
/ 11 мая 2018

В этом случае, так как вы хотите удалить Анкета , а для этого RequestMapping вы используете только id в качестве параметра.Перед удалением вам необходимо загрузить Анкета , чтобы удалить его.

Что-то вроде:

public void deleteQuestionnarie(Long id) {
     Questionnarie questionnaire = questionnarieRepository.find(id);
     questionnarieRepository.delete(questionnaire);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...