Как исправить java.lang.illegalargumentexception попытку создать событие слияния с нулевой сущностью в этом конкретном сценарии? - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть веб-приложение jsf 2.x, в котором есть слои jpa данных hibernate / spring для транзакции базы данных.

У меня есть Foo сущность java, которая как Bar имеет свойство OneToOne отношения.

@Entity
@Table(name="FOO")
public class Foo {
    @Id
    @Column(name="FOO_ID", nullable=false)
    private UUID fooId;

    @OneToOne
    private Bar bar;

}

Обе сущности имеют свою собственную таблицу в БД.Таблица Bar имеет первичный ключ bar_id и внешний ключ foo_id.Я попытался удалить запись из таблицы Bar для определенного условия, используя пользовательский репозиторий, расширяющий JpaRepository из данных весны jpa.

Я выполнил следующее утверждение и подумал, что он должен выполнить свою работу.

this.barRepository.delete(foo.getBarId());

Однако я столкнулся с java.lang.illegalargumentexception attempt to create merge event with null entity.Я прочитал статью о том, что null передается в качестве аргумента, но я подтвердил, что foo.getBarId() не является нулевым через отладку.Я не уверен, что пошло не так и как это исправить.

[Обновить]

Извините.Я нашел свою ошибку.Для BarRepository имеет неправильный тип объекта.

public interface BarRepository extends JpaRepository<Foo, UUID>

Это должно было быть:

public interface BarRepository extends JpaRepository<Bar, UUID>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...