@CreationTimestamp и @UpdateTimestamp не работают с JPA 2.0.2 - PullRequest
2 голосов
/ 07 марта 2019

Использование JPA для взаимодействия с MySQL.Код
Класс ImpsLogEntity

@Entity
@Table(name = "imps_log")
@Getter
@Setter
public class ImpsLogEntity extends ImpsLog {}

Класс ImpsLog

   @Setter
   @Getter
   @JsonIgnoreProperties(ignoreUnknown = true)
   @MappedSuperclass
   @ToString
   public class ImpsLog {

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

      @Column(name = "amount")
      private BigDecimal amount;

      @Column(name = "created_at")
      @CreationTimestamp
      private Date createdAt;

      @Column(name = "updated_at")
      @UpdateTimestamp
      private Date updatedAt;

    }

ImpsLogRepo

public interface ImpsLogRepo extends JpaRepository<ImpsLogEntity, Long> {
    }

ImpsLogBo

@Getter
@Setter
public class ImpsLogBo extends ImpsLog {

  private Error error;
}

AccountMapper (с использованием mapstruct)

@Mapper(componentModel = "spring")
@DecoratedWith(AccountMapperDecorator.class)
public interface AccountMapper {

ImpsLogEntity impsLogBoToImpsLogEntity(final ImpsLogBo impsLogBo);
}

Чтобы создать и сохранить объект:

ImpsLogBo impsLogBo = new ImpsLogBo() ;
impsLogBo.setAmount(new Bigdecimal(200));
ImpsLogEntity impsLogEntity = 
this.accountMapper.impsLogBoToImpsLogEntity(impsLogBo);
impsLogEntity = this.impsLogRepo.save(impsLogEntity);  

SQL-оператор создания для imps_log

CREATE TABLE `imps_log` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `amount` decimal(15,2) DEFAULT NULL,
  `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `created_at` (`created_at`),
  KEY `updated_at` (`updated_at`)
)

Этот код дает org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Столбец 'create_at' не может быть нулевым ошибка при сохранении в БД.

*

Странная часть, как и для других объектовэта аннотация работает.И для этой сущности эта ошибка также непоследовательна.

*

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...