【问题标题】:Spring Boot java.lang.IllegalStateException: A JTA EntityManager cannot use getTransaction()Spring Boot java.lang.IllegalStateException:JTA EntityManager 不能使用 getTransaction()
【发布时间】:2018-05-11 16:00:03
【问题描述】:

我在尝试调用 DELETE api 时收到 A JTA EntityManager cannot use getTransaction() 错误。不确定,如果我缺少任何与 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

【问题讨论】:

    标签: java spring hibernate spring-boot jpa


    【解决方案1】:

    在这种情况下,由于您要删除 Questionnarie,而对于该 RequestMapping,您仅使用 id 作为参数。删除前,您需要加载Questionnarie以将其删除。

    类似:

    public void deleteQuestionnarie(Long id) {
         Questionnarie questionnaire = questionnarieRepository.find(id);
         questionnarieRepository.delete(questionnaire);
    }
    

    【讨论】:

      猜你喜欢
      • 2013-04-18
      • 2012-05-24
      • 1970-01-01
      • 2012-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-30
      • 1970-01-01
      相关资源
      最近更新 更多