Как получить дочерние свойства в глубине с Javers и Hibernate сущностей? - PullRequest
1 голос
/ 04 июня 2019

Я использую Javers 5.5.2 в проекте моего клиента, и проблема заключается в следующем: у меня есть 2 объекта: ГИБДД и аффектация.Аффектация - дитя транспортных средств.

Когда я сохраняю и фиксирую сущность транспортных средств, я хочу, чтобы Джаверс давал мне информацию о привязанности, но возвращает только идентификатор воздействия.

/**
 * A Vehicule.
 */
@Entity
@Table(name = "vehicule")
@Document(indexName = "vehicule")
public class Vehicule implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator 
 "sequenceGenerator")
    @SequenceGenerator(name = "sequenceGenerator")
    private Long id;

    @Pattern(regexp = "^[A-Z]$")
    @Column(name = "categorie_assurance")
    private String categorieAssurance;

    @ManyToOne
    @JsonIgnoreProperties("vehicules")
    private Affectation affectation;



**
 * A Affectation.
 */
@Entity
@Table(name = "affectation")
@Document(indexName = "affectation")
public class Affectation implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
    @SequenceGenerator(name = "sequenceGenerator")
    private Long id;


    @Column(name = "code", nullable = false)
    private String code;


    @Column(name = "commune", nullable = false)
    private String commune;


    @Column(name = "libelle", nullable = false)
    private String libelle;

Здесьмоя конечная точка для получения аудита от javers, я использую поиск изменений.

@RequestMapping("/vehicule/{id}/commits")
    public ResponseEntity<List<ChangesByCommitAndChanges>> getVehiculeChangesByCommit(@PathVariable Integer id,
                                                                                      @RequestParam Optional<String> param) {
        QueryBuilder jqlQuery = QueryBuilder
            .byInstanceId(id, Vehicule.class)
            .withNewObjectChanges(false)
            .withChildValueObjects()
            .limit(10);
        jqlQuery = param.isPresent() ? jqlQuery.withChangedProperty(param.get()) : jqlQuery;
        return ResponseEntity.ok().body(groupChangesByCommit(javers.findChanges(jqlQuery.build())));
    }

Эта конечная точка возвращает следующие проверки:

Commit 17.0 done by LAURIE Adèle at 04 juin 2019, 09:17:01 :
* changes on nc.opt.refauto.domain.Vehicule/11700 :
  - 'affectation' reference changed from '...Affectation/7600' to '...Affectation/7900'
Commit 16.0 done by LAURIE Adèle at 04 juin 2019, 09:16:55 :
* changes on nc.opt.refauto.domain.Vehicule/11700 :
  - 'pret' reference changed from '' to '...Affectation/7700'
Commit 2.0 done by LAURIE Adèle at 03 juin 2019, 16:23:01 :
* changes on nc.opt.refauto.domain.Vehicule/11700 :
  - 'numeroCommande' value changed from '11-723' to '11-723aef'
  - 'numeroMarche' value changed from '250/10' to '250/10efae'
  - 'observations' value changed from 'efef' to 'efefefaef'

Как видно из журналов тезисов, аффект возвращается толькоего идентификатор, а не другие значения свойств (код, коммуна, клевета).

...