sql >> Databáze >  >> RDS >> Mysql

Jak dát hodnotu generovanou Triggerem do Hibernate ValueObject?

Pokud používáte spouštěč, zamýšlená strategie generování je org.hibernate.id.SelectGenerator . Aby však bylo možné použít tuto strategii, musí být režim spánku schopen po vložení najít vložený řádek, aby zjistil, jakou hodnotu spouštěč přiřadil, existují 2 způsoby, jak toho dosáhnout.

První je konkrétně nakonfigurovat generátor tak, aby mu sdělil sloupec, který definuje jedinečný klíč (alespoň logicky) v tabulce:

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

Druhý je přes podporu přirozeného id 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 vám může fungovat. Ve skutečnosti půjde o ovladač JDBC a jak (pokud) implementuje getGeneratedKeys



  1. Nelze najít sloupec dbo nebo uživatelem definovanou funkci nebo agregaci dbo.Splitfn nebo je název nejednoznačný

  2. Stretch Database v SQL Server 2016 RTM

  3. Maskování dat v DB aplikacích

  4. Příklad MICROSECOND() – MySQL