У меня есть 2-запрос, который мне нужно добавить в Hibernate.
1-ALTER TABLE ccpt_data.project_employee drop CONSTRAINT
ck_pe_overlap;
2-ALTER TABLE ccpt_data.project_employee ADD
CONSTRAINT ck_pe_overlap CHECK (check_periods_overlap(employee_id,
project_id,start_date, end_date)=CAST (0 AS BIT));
В репозитории я выполнил этот тип запроса, если его можно назвать так, но проблема в том, что использование alter - это мойв первый раз, потому что обычно мы используем только выбрать в хранилище.У меня нет примера, чтобы увидеть что-то подобное:
public static final String DROP_CONSTRAINT = "ALTER TABLE "
+ " ProjectEmployee "
+ "drop CONSTRAINT ck_pe_overlap";
public static final String ADD_CONSTRAINT = "ALTER TABLE "
+ " ProjectEmployee"
+ "CHECK (check_periods_overlap(employee_id, project_id,start_date, end_date)=CAST "
+ "(0 AS BIT))";
@Query(DROP_CONSTRAINT)
public ProjectEmployee dropConstraint();
@Query(ADD_CONSTRAINT)
public ProjectEmployee addConstraint();
и на службе у меня есть:
public void dropConstraint() {
projectEmployeeRepository.dropConstraint();
}
/* from the service i call this @Query(DROP_CONSTRAINT)
public ProjectEmployee dropConstraint(); and this one is relation with query i need but i think is not correct cause i test it and is not working*/
public void addConstraint() {
projectEmployeeRepository.addConstraint();
}
И у меня есть исключениеэто и только для первого запроса, потому что я закомментировал второй, но это происходит так же:
Caused by: java.lang.IllegalArgumentException:
Validation failed for query for method public abstract com.xitee.ccpt.entity.ProjectEmployee com.xitee.ccpt.repository.ProjectEmployeeRepository.dropConstraint()!
at org.springframework.data.jpa.repository.query.SimpleJpaQuery.validateQuery(SimpleJpaQuery.java:87).
Caused by: java.lang.IllegalArgumentException: node to traverse cannot be null!
Кто-нибудь имеет какие-либо идеи, как я могу исправить или что не так с моим кодом?
служба хранилище