0 Câu hỏi: xác nhận ddl hibernate smallint vs int2

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Tôi có một ứng dụng cũ mà tôi muốn nâng cấp lên JPA. Để phát triển và thử nghiệm cục bộ, tôi đã cấu hình cơ sở dữ liệu trong bộ nhớ H2, trên các máy chủ thử nghiệm và sản xuất có cơ sở dữ liệu PostgreQuery, định nghĩa lược đồ tôi muốn ánh xạ. Tôi muốn định cấu hình Hibernate để xác thực ánh xạ DDL (trong Spring Boot với spring.jpa.hibernate.ddl-auto=validate).

Trong cơ sở dữ liệu PostgreQuery đã cho, loại cột là SMALLINT, nhưng loại Java của thuộc tính tương ứng là int.

Và đây là vấn đề : Nếu tôi chú thích thuộc tính với @Column(columnDefinition="SMALLINT" ...) thì việc xác thực với cơ sở dữ liệu H2 là ổn, với PostgreQuery tuy nhiên tôi thấy lỗi found [int2 (Types#SMALLINT)], but expecting [smallint (Types#INTEGER)].

Nếu tôi thay đổi chú thích thành @Column(columnDefinition="INT2" ...) thì PostgreQuery rất vui, nhưng H2 phàn nàn với found [smallint (Types#SMALLINT)], but expecting [int2 (Types#INTEGER)].

. Nhưng loại cơ sở dữ liệu tương tự được H2 báo cáo là Types và PostgreQuery là SMALLINT (loại này khá lạ, vì pgAdmin hiển thị cột cũng là INTEGER).

Có cách nào để tôi có thể nói với trình điều khiển Hibernate hoặc JDBC rằng hai tên loại này nên được xử lý giống nhau không?

PS: Tuy nhiên, tôi đã tìm thấy một số câu trả lời khuyên sử dụng chú thích int để sử dụng SMALLINT (do đó không cho phép INT2).

    
0
  1. Sử dụng cùng một cơ sở dữ liệu trong phát triển cục bộ mà bạn sử dụng trong sản xuất, nếu không, bạn sẽ tiếp tục gặp phải các vấn đề khác nhau.
    2019-05-08 20: 25: 17Z
  2. Chắc chắn nếu đó là cơ sở dữ liệu trong bộ nhớ thì bạn muốn SMALLINT khi chạy trên H2. Bạn có thể sử dụng cấu hình Spring để kích hoạt nhiều cấu hình thời gian chạy. H2 cũng có chế độ tương thích Postgres. Không biết nếu điều đó sẽ khắc phục vấn đề của bạn? h2database.com/html/features.html#comp Tương thích
    2019-05-09 07: 16: 12Z
  3. Có lẽ giải pháp thực dụng đúng đắn hiện nay là vô hiệu hóa xác thực cho H2.
    2019-05-09 08: 48: 22Z
  4. Cảm ơn liên kết đến chế độ tương thích, @AlanHay (mặc dù nó không giải quyết được vấn đề)
    2019-05-09 08: 49: 44Z
0 Câu trả lời                              0                         
@Type
nguồn đặt đây