Trong mã của tôi, tôi sẽ có rất nhiều thu khí như thế này với cùng một tập các chú thích (một cho Hibernate và những người khác cho Jackson):Kết hợp nhiều chú thích tùy ý trong một
@Transient
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = BaseEntity.JSON_DATETIME_FORMAT)
public LocalDateTime getCreatedDateDT() {
return DateTimeUtils.klabTimestampToLocalDateTime(getCreatedDate(), createdDateDT);
}
Tôi muốn giảm thiểu sự lặp lại bằng cách thực hiện chú thích của riêng tôi, điều này sẽ có nghĩa là tất cả bốn chú giải này cùng nhau, như sau:
@TransientLocalDateTime
public LocalDateTime getCreatedDateDT() {
return DateTimeUtils.klabTimestampToLocalDateTime(getCreatedDate(), createdDateDT);
}
Làm cách nào để thực hiện? Điều này thậm chí có thể?
CẬP NHẬT Nhờ Konstantin Yovkov, bây giờ tôi biết, tôi có thể kết hợp tất cả các chú thích Jackson trong một, nhưng đó là bởi vì vi xử lý chú thích của Jackson nhận một thủ thuật như vậy. Tôi tự hỏi liệu có thể làm cho bất kỳ bộ xử lý chú thích nào làm điều đó không? Dường như với tôi rằng nó không phải.
này là hữu ích, nhưng nó có thể được sử dụng cho các chú thích tùy ý hoặc cho Jackson chỉ chú thích? Có vẻ như '@ Transient' không được phép ở đây. –
Tôi có thể được sử dụng cho chú thích tùy ý, nhưng chỉ có thể được xử lý bởi bộ xử lý chú thích Jackson ... trừ khi bạn viết bộ xử lý chú thích tùy chỉnh, nhưng sau đó tôi tin rằng bạn chỉ có thể giới thiệu chú thích mới (và không sử dụng '@JacksonAnnotationsInside'), được xử lý bởi bộ xử lý chú thích của bạn. –
Ngoài ra, tôi nhận được lỗi '@TransientLocalDateTime không áp dụng cho phương thức' trong IDE của tôi. –