Почему я не могу искать сущности между объединенными таблицами?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Почему я не могу искать сущности между объединенными таблицами?

Сообщение Anonymous »

У меня есть две сущности: Пользователь и Телефон.
Пользовательская сущность:
@Getter
@Setter
@Accessors(chain = true)
@Entity
@Table(name = "user_table")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name = "username", unique = true, nullable = false)
@NonNull
private String username;
@Column(name = "firstname")
@NonNull
private String firstName;
@Column(name = "lastname")
@NonNull
private String lastName;
@Column(name = "age")
@NonNull
private Integer age;
@Column(name = "email", nullable = false, unique = true)
@NonNull
private String email;
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "address_id", foreignKey = @ForeignKey(name = "fk_user_address_id"))
private Address address;
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "phone_number", foreignKey = @ForeignKey(name = "fk_user_phone_number"))
private Phone phone;
}

Телефон:
@Getter
@Setter
@Accessors(chain = true)
@Entity
@Table(name = "phone_table")
public class Phone {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "phone_number", unique = true, nullable = false)
@NonNull
private String number;
}

Также я создал классы DTO для этих сущностей.
@Data
@Accessors(chain = true)
public class CreateUserRequest {
private Long userId;
private String username;
private String firstName;
private String lastName;
private Integer age;
private String email;
private CreatePhoneRequest phone;
private CreateAddressRequest address;
}

@Data
@Accessors(chain = true)
public class UserResponse {
private Long id;
private String username;
private String firstName;
private String lastName;
private String email;
private int age;
private PhoneResponse phone;
private AddressResponse address;
}
}

и
@Data
@Accessors(chain = true)
public class CreatePhoneRequest {
private String phone;
}
@Data
@Accessors(chain = true)
public class PhoneResponse {
private String phone;
}

Затем UserRepository расширяет JpaRepository, где я нахожуUserByPhone_Number(String phonenumber)
в сервисе, который я создаю логика поиска пользователей:
@Service
@RequiredArgsConstructor
public class UserServiceImpl implements UserService {
private final UserRepository userRepository;
private final PhoneServiceImpl phoneServiceImpl;

// ***********************************************************
// ******************* FIND USER BY PHONE ********************
// ***********************************************************
@NonNull
@Transactional(readOnly = true)
@Override
public UserResponse getUserByPhoneNumber(String phoneNumber) {
return userRepository.findUserByPhone_Number(phoneNumber);
}
}

и UserController для выполнения запросов:
@RestController
@RequestMapping("/api/v1/users")
@RequiredArgsConstructor
public class UserController {
private final UserServiceImpl userService;
private final Logger log = LoggerFactory.getLogger(UserController.class);

@GetMapping(value = "/phonenumber/{number}", produces = APPLICATION_JSON_VALUE)
public UserResponse getUserByPhoneNumber(@PathVariable String number) {
UserResponse user = userService.getUserByPhoneNumber(number);
System.out.println(user);
return user;
}
}

И я могу получить список пользователей, я могу получить пользователя по идентификатору..... но когда я пытаюсь получить пользователя по номеру телефона (объединенная таблица), я получаю:
{
"message": "Specified result type [com.app.apringlearn.app.ResponseRequest.UserResponse] did not match Query selection type [com.app.apringlearn.app.Enteties.User] - multiple selections: use Tuple or array"
}


Подробнее здесь: https://stackoverflow.com/questions/787 ... ned-tables
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Почему я не могу искать сущности между объединенными таблицами?
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • JDBI: Как я могу рассматривать результат запроса с объединенными таблицами как результат одной таблицы и сопоставлять ег
    Anonymous » » в форуме JAVA
    0 Ответы
    87 Просмотры
    Последнее сообщение Anonymous
  • Цикл PHP с объединенными таблицами MySQL
    Anonymous » » в форуме Php
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Цикл PHP с объединенными таблицами MySQL
    Anonymous » » в форуме Html
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Объединение двух хэш-карт с их значениями, объединенными как объект определенного класса
    Гость » » в форуме JAVA
    0 Ответы
    72 Просмотры
    Последнее сообщение Гость

Вернуться в «JAVA»