Spring Data JPA с SQL Server дает ошибку: Неверное имя объекта 'Table_Name' - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь сохранить список объектов в базе данных sql-server в моем приложении Spring Boot, но получаю исключение при вызове метода save.

2018-11-26 11:50:41.896  WARN 22082 --- [nio-8080-exec-2] o.h.e.j.s.SqlExceptionHelper             : SQL Error: 208, SQLState: S0002
2018-11-26 11:50:41.897 ERROR 22082 --- [nio-8080-exec-2] o.h.e.j.s.SqlExceptionHelper             : Invalid object name 'ticket'.

Ниже приведена конфигурация, которую я использую:

#SQL Server configurations
spring.datasource.url=jdbc:sqlserver://my.server.ip.address;databaseName=UH
spring.datasource.username=Test
spring.datasource.password=Test@123
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.jpa.show-sql=true
spring.jpa.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect

И Model выглядит так:

@Entity(name = "Ticket")
public class Ticket {

    public Ticket() {

    }

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private long id;

    @Column(name = "ticket_id", nullable = false, length=200)
    private long ticket_id;

    @Column(name = "topic", nullable = false, length=200)
    private String topic;

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    private Set<Tag> tag;

    @Column(name = "type", nullable = false, length=200)
    private String type;

    @Column(name = "brand", nullable = false, length=200)
    private long brand;

    @Column(name = "ticket_group", nullable = false, length=200)
    private long ticket_group;

    @Column(name = "priority", nullable = false, length=200)
    private String priority;

    @Column(name = "status", nullable = false, length=200)
    private String status;


    @Column(name = "created_date", nullable = false, length=200)
    private String created_date;

    @Column(name = "created_time", nullable = false, length=200)
    private String created_time;

    @Column(name = "channel", nullable = false, length=200)
    private String channel;

    // Getters & Setters....

}

Я создал класс Repository:

@Repository
public interface TicketRepository extends JpaRepository<Ticket, Long> {

}

и, наконец, контроллер:

@RestController
public class TicketController {


  @Autowired
  TicketRepository ticketRepository;

  @GetMapping("/tickets")
  public void saveTicketData() {

      List<Ticket> tickets = null;
      try {
            tickets = getAllTickets();  //some utility method
            ticketRepository.save(tickets);  // here exception occurs
        } catch (Exception e) {
            e.printStackTrace();
        }   
}

Не уверен, что здесь не так.Есть ли другой способ сохранить список объектов на сервере SQL, чем в MySQl?Это прекрасно работает с MySQL или если я переключусь на Mongo.

Любая помощь будет принята.

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Sqlserver чувствителен к регистру, поэтому, если имя таблицы TICKET, оно не распознает символ «i» в Ticket.Можете ли вы проверить, если имя таблицы БИЛЕТ или билет.если это БИЛЕТ, то попробуйте эту аннотацию.

@Table(name = "TICKET")
@Entity(name = "TICKET")
0 голосов
/ 26 ноября 2018

Включите еще одну аннотацию @Table(name = "Ticket") в класс сущности.

@Table(name = "Ticket") @Entity(name = "Ticket") public class Ticket {.....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...