JPA Обновление сущности по под-сущности и CRUDRepository - PullRequest
0 голосов
/ 08 июня 2018

Название поста может не иметь смысла, но вот в чем проблема, у меня есть сущности Администратор и Пользователь следующим образом:

@Entity
@Table(name = "administrators")
public class Administrator extends User {...


@Entity
@Table (name = "users")
@Inheritance(strategy = InheritanceType.JOINED)
public class User {...

Вот как это выполняется:

Administrator administrator = new Administrator();
User user = //get the existing user by username
administrator.setUserId(user.getUserId());
administrator.set...
// then save using registration service
registrationService.save(administrator);

здесь служба регистрации

@Service
public class RegistrationService {
    @Autowired
    AdministratorRepository administratorRepository ;

    public void addAdministrator(Administrator administrator){
        administratorRepository.save(administrator);
    }
}

здесь хранилище

@Repository
public interface AdministratorRepository extends UserBaseRepository<User> {

}

, а вот UserBaseRepository

@NoRepositoryBean
public interface UserBaseRepository<T extends User> extends CrudRepository<T, Integer> {

}

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

Теперь данные хранятся в таблице администраторов, НО в таблице пользователей создается новая строка, которая не обновляет пользователя с идентификатором пользователя, который я установил в экземпляре администратора.Есть идеи?

Заранее спасибо!

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