Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Trình tự ngủ đông trên oracle, @GeneratedValue (chiến lược =GenerationType.AUTO)

Những Chú thích này không tạo ra hai chuỗi mà chỉ một chuỗi. Điều này có đúng / dự kiến ​​không?

Đó là hành vi được mong đợi. Khi sử dụng @GeneratedValue(strategy = GenerationType.AUTO) , nhà cung cấp JPA sẽ chọn một chiến lược thích hợp cho cơ sở dữ liệu cụ thể. Trong trường hợp của Oracle, đây sẽ là SEQUENCE và vì bạn không chỉ định bất cứ điều gì, Hibernate sẽ sử dụng một chuỗi toàn cục duy nhất được gọi là hibernate_sequence .

Điều này có chính xác? Vâng, tôi không biết, nó tùy thuộc vào nhu cầu của bạn. Đề phòng trường hợp, giá trị tối đa mặc định cho một chuỗi Oracle là 1E + 27, hoặc 1.000.000.000.000.000.000.000.000.000.000.000. Đối với nhiều người như vậy là đủ.

Bây giờ, có thể sử dụng GenerationType.AUTO và vẫn kiểm soát tên của trình tự khi cơ sở dữ liệu sử dụng các trình tự:

@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="my_entity_seq_gen")
@SequenceGenerator(name="my_entity_seq_gen", sequenceName="MY_ENTITY_SEQ")
private Long id;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách chạy tập lệnh SQL Plus trong PowerShell

  2. Hàm NLS_CHARSET_NAME () trong Oracle

  3. Làm cách nào để chuyển động các giá trị cho toán tử IN?

  4. Quản lý Nhóm CDB trong Cơ sở dữ liệu Oracle 18c

  5. Cách kết nối Luồng khí với cơ sở dữ liệu oracle