没有可用的 JTA 平台(设置 'hibernate.transaction.jta.platform' 以启用 JTA 平台集成)

问题描述 投票:0回答:1

尝试启动应用程序时,它被终止。我正在尝试进行 oneToMany 和 ManyToOne 映射。有人请帮助我成功启动应用程序,这里我使用 Mysql 添加必要的代码片段进行分析。我也为这两个实体创建了存储库接口。请帮助我解决这个问题。

错误:

No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
[2m2024-01-06T20:31:20.359+05:30[0;39m [32m INFO[0;39m [35m14920[0;39m [2m---[0;39m [2m[EMPLOYEE-ADDRESS] [           main][0;39m [2m[0;39m[36mj.LocalContainerEntityManagerFactoryBean[0;39m [2m:[0;39m Initialized JPA EntityManagerFactory for persistence unit 'default'

日志:


  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
[32m :: Spring Boot :: [39m              [2m (v3.2.1)[0;39m

[2m2024-01-06T20:31:17.636+05:30[0;39m [32m INFO[0;39m [35m14920[0;39m [2m---[0;39m [2m[EMPLOYEE-ADDRESS] [           main][0;39m [2m[0;39m[36mc.j.e.EmployeeAddressApplication        [0;39m [2m:[0;39m Starting EmployeeAddressApplication using Java 17.0.8.1 with PID 14920 (C:\Users\kamak\Downloads\employee-address\employee-address\target\classes started by kamak in C:\Users\kamak\Downloads\employee-address\employee-address)
[2m2024-01-06T20:31:17.639+05:30[0;39m [32m INFO[0;39m [35m14920[0;39m [2m---[0;39m [2m[EMPLOYEE-ADDRESS] [           main][0;39m [2m[0;39m[36mc.j.e.EmployeeAddressApplication        [0;39m [2m:[0;39m No active profile set, falling back to 1 default profile: "default"
[2m2024-01-06T20:31:18.096+05:30[0;39m [32m INFO[0;39m [35m14920[0;39m [2m---[0;39m [2m[EMPLOYEE-ADDRESS] [           main][0;39m [2m[0;39m[36m.s.d.r.c.RepositoryConfigurationDelegate[0;39m [2m:[0;39m Bootstrapping Spring Data JPA repositories in DEFAULT mode.
[2m2024-01-06T20:31:18.122+05:30[0;39m [32m INFO[0;39m [35m14920[0;39m [2m---[0;39m [2m[EMPLOYEE-ADDRESS] [           main][0;39m [2m[0;39m[36m.s.d.r.c.RepositoryConfigurationDelegate[0;39m [2m:[0;39m Finished Spring Data repository scanning in 15 ms. Found 0 JPA repository interfaces.
[2m2024-01-06T20:31:18.458+05:30[0;39m [32m INFO[0;39m [35m14920[0;39m [2m---[0;39m [2m[EMPLOYEE-ADDRESS] [           main][0;39m [2m[0;39m[36mo.hibernate.jpa.internal.util.LogHelper [0;39m [2m:[0;39m HHH000204: Processing PersistenceUnitInfo [name: default]
[2m2024-01-06T20:31:18.514+05:30[0;39m [32m INFO[0;39m [35m14920[0;39m [2m---[0;39m [2m[EMPLOYEE-ADDRESS] [           main][0;39m [2m[0;39m[36morg.hibernate.Version                   [0;39m [2m:[0;39m HHH000412: Hibernate ORM core version 6.4.1.Final
[2m2024-01-06T20:31:18.554+05:30[0;39m [32m INFO[0;39m [35m14920[0;39m [2m---[0;39m [2m[EMPLOYEE-ADDRESS] [           main][0;39m [2m[0;39m[36mo.h.c.internal.RegionFactoryInitiator   [0;39m [2m:[0;39m HHH000026: Second-level cache disabled
[2m2024-01-06T20:31:18.777+05:30[0;39m [32m INFO[0;39m [35m14920[0;39m [2m---[0;39m [2m[EMPLOYEE-ADDRESS] [           main][0;39m [2m[0;39m[36mo.s.o.j.p.SpringPersistenceUnitInfo     [0;39m [2m:[0;39m No LoadTimeWeaver setup: ignoring JPA class transformer
[2m2024-01-06T20:31:18.818+05:30[0;39m [32m INFO[0;39m [35m14920[0;39m [2m---[0;39m [2m[EMPLOYEE-ADDRESS] [           main][0;39m [2m[0;39m[36mcom.zaxxer.hikari.HikariDataSource      [0;39m [2m:[0;39m HikariPool-1 - Starting...
[2m2024-01-06T20:31:19.207+05:30[0;39m [32m INFO[0;39m [35m14920[0;39m [2m---[0;39m [2m[EMPLOYEE-ADDRESS] [           main][0;39m [2m[0;39m[36mcom.zaxxer.hikari.pool.HikariPool       [0;39m [2m:[0;39m HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@463afa6e
[2m2024-01-06T20:31:19.209+05:30[0;39m [32m INFO[0;39m [35m14920[0;39m [2m---[0;39m [2m[EMPLOYEE-ADDRESS] [           main][0;39m [2m[0;39m[36mcom.zaxxer.hikari.HikariDataSource      [0;39m [2m:[0;39m HikariPool-1 - Start completed.
[2m2024-01-06T20:31:20.211+05:30[0;39m [32m INFO[0;39m [35m14920[0;39m [2m---[0;39m [2m[EMPLOYEE-ADDRESS] [           main][0;39m [2m[0;39m[36mo.h.e.t.j.p.i.JtaPlatformInitiator      [0;39m [2m:[0;39m HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
[2m2024-01-06T20:31:20.359+05:30[0;39m [32m INFO[0;39m [35m14920[0;39m [2m---[0;39m [2m[EMPLOYEE-ADDRESS] [           main][0;39m [2m[0;39m[36mj.LocalContainerEntityManagerFactoryBean[0;39m [2m:[0;39m Initialized JPA EntityManagerFactory for persistence unit 'default'
[2m2024-01-06T20:31:20.742+05:30[0;39m [32m INFO[0;39m [35m14920[0;39m [2m---[0;39m [2m[EMPLOYEE-ADDRESS] [           main][0;39m [2m[0;39m[36mc.j.e.EmployeeAddressApplication        [0;39m [2m:[0;39m Started EmployeeAddressApplication in 3.537 seconds (process running for 4.325)
[2m2024-01-06T20:31:20.759+05:30[0;39m [32m INFO[0;39m [35m14920[0;39m [2m---[0;39m [2m[EMPLOYEE-ADDRESS] [ionShutdownHook][0;39m [2m[0;39m[36mj.LocalContainerEntityManagerFactoryBean[0;39m [2m:[0;39m Closing JPA EntityManagerFactory for persistence unit 'default'
[2m2024-01-06T20:31:20.764+05:30[0;39m [32m INFO[0;39m [35m14920[0;39m [2m---[0;39m [2m[EMPLOYEE-ADDRESS] [ionShutdownHook][0;39m [2m[0;39m[36mcom.zaxxer.hikari.HikariDataSource      [0;39m [2m:[0;39m HikariPool-1 - Shutdown initiated...
[2m2024-01-06T20:31:20.780+05:30[0;39m [32m INFO[0;39m [35m14920[0;39m [2m---[0;39m [2m[EMPLOYEE-ADDRESS] [ionShutdownHook][0;39m [2m[0;39m[36mcom.zaxxer.hikari.HikariDataSource      [0;39m [2m:[0;39m HikariPool-1 - Shutdown completed.

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.2.1</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>
  <groupId>com.jagan</groupId>
  <artifactId>employee-address</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>employee-address</name>
  <description>Demo project for Spring Boot</description>
  <properties>
    <java.version>17</java.version>
  </properties>
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

    <dependency>
      <groupId>com.mysql</groupId>
      <artifactId>mysql-connector-j</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>
              <groupId>org.projectlombok</groupId>
              <artifactId>lombok</artifactId>
            </exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>

应用程序属性

spring.datasource.username=root
spring.datasource.password=root

spring.jpa.hibernate.ddl-auto=update

spring.application.name=EMPLOYEE-ADDRESS
server.port=8084

地址.java


import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Entity
@Table(name = "address")
@Data
//@AllArgsConstructor
//@NoArgsConstructor
public class Address {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int addressId;
    private String houseNumber;
    private String city;
    @ManyToOne
    @JoinColumn(name = "emp_id")
    private Employee employee;

}

Employee.java


import java.util.List;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Entity
@Table(name = "employee")
@Data
//@AllArgsConstructor
//@NoArgsConstructor
public class Employee {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int empId;
    private String empName;
    @OneToMany(mappedBy = "employee")
    private List<Address> address;
}
spring-boot hibernate spring-data-jpa
1个回答
0
投票

首先:

HHH000489: No JTA platform available

不是一个错误。只是一条在 INFO 级别记录的消息。我每次都得到同样的结果。

其次:从你的

pom.xml
来看,它不是一个Web应用程序。不会启动任何嵌入式 Tomcat 服务器。对于您的 Spring Boot 应用程序来说,除了正常启动和关闭而不出现任何错误之外,无需执行任何操作。

一切都按预期进行。

解决方案

根据您的要求添加一些代码和/或依赖项,因为目前您的应用程序似乎什么也不做。

© www.soinside.com 2019 - 2024. All rights reserved.