sirve relacionar que persistencia para entidades ejemplo crear java spring-data jhipster spring-data-mongodb spring-mongodb

relacionar - persistencia java ejemplo



No se encontrĂ³ ninguna propiedad nula en la clase de entidad java.time.ZonedDateTime para vincular el parĂ¡metro del constructor a (1)

Tengo la misma configuración funcionando, pero utilizando org.springframework.data.mongodb.core.convert. MongoCustomConversions en lugar de org.springframework.data.mongodb.core.convert. Conversiones personalizadas

@Bean public MongoCustomConversions customConversions() { final List<Converter> converters = new ArrayList<>(); converters.add(new ZonedDateTimeFromDateConverter()); converters.add(new ZonedDateTimeToDateConverter()); return new MongoCustomConversions(converters); }

y otra sugerencia, mongo devuelve la fecha en UTC ( https://docs.mongodb.com/manual/reference/method/Date/ ), esto significa que obtendrá la hora en UTC y no en su ZoneId.systemDefault (). Mi deserializador se ve así:

private static final ZoneId DEFAULT_ZONE_READ = ZoneId.of("UTC"); public static class ZonedDateTimeFromDateConverter implements Converter<Date, ZonedDateTime> { @Override public ZonedDateTime convert(Date date) { return date.toInstant().atZone(DEFAULT_ZONE_READ); } }

Tengo la siguiente configuracion

Configuración

@Configuration @EnableMongoRepositories(basePackages = Constants.DATA_SCAN) @EnableMongoAuditing(auditorAwareRef = "auditorAwareService") @Import(value = MongoAutoConfiguration.class) public class DatabaseConfiguration { @Bean public ValidatingMongoEventListener validatingMongoEventListener() { return new ValidatingMongoEventListener(validator()); } @Bean public LocalValidatorFactoryBean validator() { return new LocalValidatorFactoryBean(); } @Bean public CustomConversions customConversions() { final List<Converter<?, ?>> converters = new ArrayList<>(); converters.add(DateToZonedDateTimeConverter.INSTANCE); converters.add(ZonedDateTimeToDateConverter.INSTANCE); return new CustomConversions(converters); } }

Agregué convertidores personalizados pero todavía estoy recibiendo:

No se ha encontrado ninguna propiedad nula en la clase de entidad java.time.ZonedDateTime para vincular el parámetro del constructor a!

@Document(collection = "user") public class User implements Serializable { private static final long serialVersionUID = 1L; @Id private String id; @Field("reset_date") private ZonedDateTime resetDate = null; }

pom.xml

<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.1.RELEASE</version> <relativePath /> <!-- lookup parent from repository --> </parent> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>

Clase convertidor

public final class JSRConverters { private JSRConverters() {} public static class ZonedDateTimeToDateConverter implements Converter<ZonedDateTime, Date> { public static final ZonedDateTimeToDateConverter INSTANCE = new ZonedDateTimeToDateConverter(); private ZonedDateTimeToDateConverter() {} @Override public Date convert(final ZonedDateTime source) { return source == null ? null : Date.from(source.toInstant()); } } public static class DateToZonedDateTimeConverter implements Converter<Date, ZonedDateTime> { public static final DateToZonedDateTimeConverter INSTANCE = new DateToZonedDateTimeConverter(); private DateToZonedDateTimeConverter() {} @Override public ZonedDateTime convert(final Date source) { return source == null ? null : ZonedDateTime.ofInstant(source.toInstant(), ZoneId.systemDefault()); } } }