У меня есть две таблицы: user_info и user_password. Я хочу отображать typeName напрямую при отображении подробной информации userInfo, но я не хочу настраивать отношения (OneToMany или ManyToOne) между этими двумя объектами. Но это не работает, кто мне может помочь?
@Data
@Entity
@DynamicUpdate
public class UserInfo {// user_info
@Id
private Integer id;
private String name;
private Byte gender;
private String thirdPartId;
private Integer age;
private String telphone;
private String registerMode;
}
@Entity
@Data
public class UserPassword {//user_password
@Id
private Integer id;
private String encryptPassword;
private Integer userId;
}
/**
* This is wish result entity
* @author Mason
* @version v1.0
* @since 2019/1/16
*/
@Data
public class UserInfoPassword {
private Integer id;
private String name;
private Byte gender;
private String thirdPartId;
private Integer age;
private String telphone;
private String registerMode;
private String encryptPassword;
}
@Query(value = "SELECT u.id,u.name,u.gender,u.third_part_id,u.age,u.telphone,u.register_mode,p.encrypt_password FROM user_info u " +
"LEFT JOIN user_password p ON u.id=p.user_id ", nativeQuery = true)
List<UserInfoPassword > queryAll();
этот тип возврата UserInfoPassword будет возникать исключение:
org.springframework.core.convert.ConverterNotFoundException: не найден конвертер, способный к преобразованию из типа [org.springframework.data.jpa.repository.query.AbstractJpaQuery $ TupleConverter $ TupleBackedMap] в тип [com.mason.modelreposit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posit.posll. UserInfoPassword]
если я изменю возвращаемый объект и сделаю это:
List<Object> userInfoPasswords = userInfoRepository.queryAll();
for (Object o : userInfoPasswords) {
UserInfoPassword uip = (UserInfoPassword) o;
System.out.println(uip);
}
тогда произойдет это исключение:
java.lang.ClassCastException: [Ljava.lang.Object; невозможно преобразовать в com.mason.sell.repository.model.UserInfoPassword
у кого есть отличные способы сделать многостольный запрос на соединение ???