Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да дам генерирана от Trigger стойност в Hibernate ValueObject?

Ако използвате тригер, планираната стратегия за генериране е org.hibernate.id.SelectGenerator . Въпреки това, за да използва тази стратегия, Hibernate трябва да може да локализира вмъкнатия ред след вмъкването, за да види каква стойност е присвоил тригерът, има 2 начина за това.

Първо е специално да конфигурирате генератора, за да му каже колона, която дефинира уникален ключ (поне логически) в таблицата:

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

Другият е чрез поддръжката на естествен идентификатор на 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 може да работи за вас. Наистина ще се сведе до JDBC драйвера и как (ако) прилага 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. mysql - ВМЕСЕТЕ диапазон от време в колони за дати, АКО датите не се припокриват със съществуващите

  2. mysql твърде много индекси?

  3. Имате проблеми с MySQL Join, което трябва да отговаря на множество условия

  4. Объркана Ruby/MySQL грешка:невалиден пакет:несъответствие на поредния номер

  5. Можете ли да направите цикъл за всеки ред, използвайки MySQL?