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

Làm thế nào để cung cấp giá trị được tạo bằng Trigger vào Hibernate ValueObject?

Nếu bạn đang sử dụng trình kích hoạt, chiến lược tạo dự kiến ​​là org.hibernate.id.SelectGenerator . Tuy nhiên, để sử dụng chiến lược này, Hibernate phải có khả năng xác định vị trí hàng được chèn sau khi chèn để xem giá trị mà trình kích hoạt được chỉ định. Có 2 cách để thực hiện việc này.

Đầu tiên là định cấu hình cụ thể trình tạo để cho nó biết một cột xác định khóa duy nhất (ít nhất là về mặt logic) trong bảng:

@Id
@Column(name="S_ID")
@GeneratedValue( strategy = "trigger" )
@GenericGenerator( 
    name="trigger", strategy="org.hibernate.id.SelectGenerator",
    parameters = {
        @Parameter( name="keys", value="userName" )
    }
)
private String s_id;

private String userName;

Cái khác là thông qua hỗ trợ id tự nhiên của Hibernate:

@Id
@Column(name="S_ID")
@GeneratedValue( strategy = "trigger" )
@GenericGenerator( name="trigger", strategy="org.hibernate.id.SelectGenerator" ) )
private String s_id;

@NaturalId
private String userName;

GenerationType.IDENTITY có thể phù hợp với bạn. Nó thực sự sẽ đi xuống trình điều khiển JDBC và cách (nếu) nó triển khai getGeneratedKeys



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để tạo ra các lần đọc ảo?

  2. MySQL năm 2018:Có gì trong 8.0 và các quan sát khác

  3. Chọn dữ liệu giữa 2 ngày và sản lượng trung bình hàng giờ

  4. Chèn một hàng và tránh điều kiện đua (PHP / MySQL)

  5. php password_verify không hoạt động với cơ sở dữ liệu