帖子的标题可能没有意义,但问题是,我有以下管理员和用户实体:
@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设置为我在users表中的现有userId(即用户实体)。
现在数据存储在Administrator表中但是在users表中创建了一个新行,并且它不会使用我在Administrator实例中设置的userId更新用户。有什么想法吗?
提前致谢!