Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak nadać wartość wygenerowaną przez wyzwalacz w Hibernate ValueObject?

Jeśli używasz wyzwalacza, zamierzoną strategią generowania jest org.hibernate.id.SelectGenerator . Jednak, aby użyć tej strategii, Hibernate musi być w stanie zlokalizować wstawiony wiersz po wstawieniu, aby zobaczyć, jaką wartość przypisał wyzwalacz. Są na to 2 sposoby.

Pierwszym z nich jest skonfigurowanie generatora tak, aby wskazywał mu kolumnę, która definiuje unikalny klucz (przynajmniej logicznie) w tabeli:

@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;

Drugi to obsługa naturalnych identyfikatorów 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 może pracować dla Ciebie. To naprawdę sprowadza się do sterownika JDBC i tego, jak (jeśli) zaimplementuje 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. Kod błędu:1290. Serwer MySQL działa z opcją --secure-file-priv, więc nie może wykonać tej instrukcji

  2. Zapytanie, aby znaleźć i usunąć zduplikowane dane z tabeli MYSql

  3. Czy mysqldump niezawodnie obsługuje dane binarne?

  4. Kiedy używać WYBIERZ... DO AKTUALIZACJI?

  5. Wyłącz notację naukową MySQL