hibernate ссылка 2 java-файла на одну и ту же таблицу БД - PullRequest
0 голосов
/ 05 ноября 2018

как продолжение этого вопроса

получить oneToMany и manyToOne, используя hibernate и @ JsonIgnore

У меня проблема с JsonIgnore Я думал создать один объект с аннотацией JsonIgnore и один объект, который не имеет его. когда я пытаюсь использовать новый объект, он все еще использует старый объект - что мне не хватает?

это новый код (CategoryIgnoreJson - новый класс, который я создал)

    @GET
@Produces(MediaType.APPLICATION_JSON)
@Path("getCategoriesQandA")
public List<CategoryIgnoreJson> getCategoriesQandA() {
    ediUtils = new EDIUtils(SYSTEM_NAME, USER_NAME);
    Init(ediUtils);
    ediUtils.writeToLog("get Categories , questions and answers ");
    List<CategoryIgnoreJson> categoriesArray;

    categoriesArray = categoryIgnoreJsonRepository.getEffective();

    return categoriesArray;

}

Я также создал новый репозиторий

public interface CategoryIgnoreJsonRepository extends JpaRepository<CategoryIgnoreJson, Long>{
@Transactional 
@Modifying
@Query("update  Category set expiration_date = current_date() where category_id = ?1 ")
void expireCategory(Long id );  


@Query("from Category where function ('coalesce' ,effectiveDate ,current_date() ) <= current_date() "
        + "and function('coalesce' ,expirationDate , to_date('50001231','yyyymmdd')) > current_date() ")
List<CategoryIgnoreJson> getEffective( );

}

Я вижу в файле журнала, что старая категория все еще называется Я также изменил имя таблицы в старой категории с категорий на категории1 (только для проверки того, что этот код вызывается) и получил ожидаемую ошибку

edi_ms.categories1" does not exist

как я могу назвать новый класс? что мне не хватает?

1 Ответ

0 голосов
/ 08 ноября 2018

Нашел проблему Мне также нужно было изменить выбор на

    @Query("from CategoryIgnoreJson ..."

также измените значение сопоставленного, чтобы сослаться на имя объекта, которому сопоставлен в parrent (в CatagoryIgnoreJson.java)

@OneToMany(fetch = FetchType.EAGER, mappedBy = "categoryIgnoreJson")
@Fetch(FetchMode.SUBSELECT)
@NotFound(action = NotFoundAction.IGNORE)
public List<QuestionIgnoreJson> getQuestions() {
    return this.questions;enter code here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...