У сущности JHipster свойство пользователя установлено в null при сериализации в JSON - PullRequest
0 голосов
/ 21 июня 2019

Я не большой специалист по Spring Boot, а начинающий с JHipster

Моя сущность:

@Entity
@Table(name = "meal")
public class Meal implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;


    @ManyToOne(fetch = FetchType.EAGER) // added this to JHipster generation
    @JsonIgnoreProperties("meals")
    private User user;

    // ...
}


Я не думаю, что нужно извлекать желание, так какя думаю, по умолчаниюЯ также пытался с или без @JsonIgnoreProperties

Я не трогал GET /api/meals ресурс

    @GetMapping("/meals")
    public ResponseEntity<List<Meal>> getAllMeals(Pageable pageable, @RequestParam MultiValueMap<String, String> queryParams, UriComponentsBuilder uriBuilder) {
        Page<Meal> page = mealService.findAll(pageable);
        HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(uriBuilder.queryParams(queryParams), page);
        return ResponseEntity.ok().headers(headers).body(page.getContent());
    }

ни службы:

    @Transactional(readOnly = true)
    public Page<Meal> findAll(Pageable pageable) {
        log.debug("Request to get all Meals");
        return mealRepository.findAll(pageable);
    }

И я получаю этоJSON:

[ {
  "id" : 1,
  "instant" : "2019-06-20T03:59:53Z",
  "user" : null
}, {
  "id" : 2,
  "instant" : "2019-06-20T04:18:47Z",
  "user" : null
}]

1 Ответ

0 голосов
/ 21 июня 2019

На самом деле файл базы данных meals.csv, загруженный liquibase, не имел столбца user.

Я обновил meals.csv файл

id;instant;text;user_id
1;2019-06-20T03:59:53;My own value;4
2;2019-06-20T04:18:47;And another meal;4

Обновил вручную набор изменений, найдяloadData (возможно, это не лучшая практика!)

<changeSet id="20190620074431-1-data" author="jhipster" context="faker">
        <loadData
                  file="config/liquibase/data/meal.csv"
                  separator=";"
                  tableName="meal">
            <column name="id" type="numeric"/>
            <column name="instant" type="datetime"/>
            <column name="text" type="string"/>
            <column name="user_id" type="numeric"/> <!-- <<< Added this -->
        </loadData>
</changeSet>

, затем запустил ./mvnw clean и перезапустил приложение.

Это сработало для меня и кажется логичным, но мне интересно, почему внешние ключине генерируются случайным образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...