Как получить сгенерированный базой данных не id столбец после сохранения - PullRequest
2 голосов
/ 09 марта 2020

Следующая сущность имеет столбец без идентификатора COLUMN_NONID. Этот столбец заполняется из последовательности базы данных, вызываемой в триггере (перед вставкой в ​​таблицу)

@Entity
@Table(name="tableABC")
public class ABCClass implements Serializable {

   @Id
   @GeneratedValue(strategy=GenerationType.IDENTITY)
   @Column(name="COLUMN_ID")
   private Long columnId;

   -----
   -----
   @Column(name="COLUMN_NONID")
   private Long nonIdColumn;
   ----
}

Когда я пытался вставить новую запись в эту таблицу. Объект abcClassEnity, возвращенный из сохранения, содержит значение nonIdColumn как null. Это значение столбца существует в базе данных и определяется как ненулевой столбец. Как я могу получить значение этого столбца из сохранения.

abcClassEnity = tableABCRepository.save(abcClassEnity);

1 Ответ

2 голосов
/ 09 марта 2020

Аннотация @Generated была разработана специально для этой цели. Вы можете исправить свое отображение следующим образом:

@Generated(value = GenerationTime.INSERT)
@Column(name = "COLUMN_NONID", insertable = false)
private Long nonIdColumn;

Более подробное объяснение см. В документации по спящему режиму .

...