Allow overriding DateTimeProvider via Bean Definition
The default DateTimeProvider is set to CurrentDateTimeProvider.INSTANCE which returns LocalDateTime.now().
We have to override it when using OffsetDateTime as JPA will throw an error.
According to https://docs.spring.io/spring-data/jpa/reference/auditing.html#jpa.auditing.configuration it is already possible to override AuditorAware by simply defining a bean.
However, the same is not true for DateTimeProvider. I have tried defining a bean of type DateTimeProvider, but it was not picked up. I was only able to specify it via @EnableJpaAuditing(dateTimeProviderRef = "...")
(note, I used EnableJpaAuditing, but AuditingHandlerSupport is part of spring-data-commons)
AuditingBeanDefinitionRegistrarSupport enables autowire by type if auditorAwareRef isn't set. I think we should be able to generally set autowrite mode to AUTOWIRE_BY_TYPE and back off from setting dateTimeProvider to CurrentDateTimeProvider.INSTANCE if no reference is configured as AuditingHandlerSupport initializes itself with CurrentDateTimeProvider.INSTANCE.
hello ! Would it be okay if I try?
Sure. If you're using AI, please use AI to augment yourself and critically consider whether that what AI has produced would be of good quality that you as developer are proud of.