I have a project with Spring Boot with Hibernate. For json field use annotations like @Type(type = "jsonb"), and definition Hibernate ORM extra Types: "com.vladmihalcea, hibernate-types-52"
Its work correctly. But Is it possible to change the order of the default fields to a different one? Like “@JsonPropertyOrder”. (This annotation doesn’t work here).
For example – the code below writes the jsonb to PostgreSQL:
Result – birthDate inside full name: {“lastName”: “some lastName”, “birthDate”: “01.01.1985”, “firstName”: “some firstName”, “middleName”: “some middlname”, “personDocument”: null}
I need: {“lastName”: “some lastName”, “firstName”: “some firstName”, “middleName”: “some middlname”, “birthDate”: “01.01.1985”, “personDocument”: null}
———–source model class————–
@JsonPropertyOrder( //This annotation not work :(
{“lastName”, “firstName”, “middleName”, “birthDate”, “personDocument”})
public class PersonInfo implements Serializable {
private static final long serialVersionUID = 8604200400882367977L;
@JsonSerialize(using = SnilsSerializer.class)
private String lastName;
private String firstName;
private String middleName;
private PersonInfoDocument personDocument;
@JsonSerialize(using = LocalDateSerializer.class)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd.MM.yyyy")
private LocalDate birthDate;
}
-----------Entity class---------------------
@Data
@Builder
@Entity
@Table(name = "CO_PERSONS")
@TypeDef(name = "jsonb", typeClass = JsonBinaryType.class)
@ToString(exclude = {"co", "personInfo"})
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
public class Person extends AuditableModel<Long> {
private static final long serialVersionUID = 3903875373255655212L;
@Id
@SequenceGenerator(name = "co_persons_cp_id_seq",
sequenceName = "co_persons_cp_id_seq",
allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE,
generator = "co_persons_cp_id_seq")
@Column(name = "cp_id", updatable = false)
private Long id;
@Type(type = "jsonb")
@Column(name = "cp_individual_json", columnDefinition = "jsonb")
private PersonInfo personInfo;
--------------pom dependency-------------
<dependency>
<groupId>com.vladmihalcea</groupId>
<artifactId>hibernate-types-52</artifactId>
<version>${hibernate-types-52.version}</version>
</dependency>