我有两个表,user_info和user_password。我想在显示userInfo详细信息时直接显示typeName,但我不想配置这两个实体之间的关系(OneToMany或manytone)。但不行,谁能帮我?
@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.sell.repository.model.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
谁有很好的方法来进行多表连接查询???
它将返回一个对象数组,因为您没有提供任何映射。
试试这个:-
List<Object[]> userInfoPasswords = userInfoRepository.queryAll();
for (Object o[] : userInfoPasswords) {
System.out.println("id: " + o[0]); // or call the setter of new UserInfoPassword
System.out.println("name: " + o[1]);
// ... and so on
}
几天来,我一直在为一个命名查询苦苦挣扎。命名查询具有与第二个表的内部联接。另一个复杂性是,第二个表上的主键是复合键。我在这里简化了两张表: 主键是nameIdx 复合主键位于nameIdx和nameType上 我试图在JPQL中模拟以下sql查询: 此查询在Oracle中按预期工作,返回许多记录。Java我有这些JPA实体: 和 还有一个主键类ANameRolePK 使用此设置,包括在上面的ANa
我有2个具有多对多关系的实体User和AcCountBase。我需要从连接表中选择所有具有选定用户ID的AcCountBase对象。我尝试了一些连接查询,但不起作用。
我使用Java(网豆软件)做一些项目,并链接到微软访问。 当我需要从Microsoft Access将三个表内部连接在一起时, 我没有问题将2个表内部连接在一起 我能得到结果。但不是3个表内连接。 对于上面的SQL,我有3个“A”表分别用于< code >用户| CPU |软件| 我得到的错误< code>java.sql.SQLException:在end SQL语句后找到字符 谢啦
问题内容: 我想在以下(简化的)数据库中应用JPA: 因此,一个节点可以具有多个权限,并且一个权限可以被多个节点引用。 我希望我的班级看起来像这样: 但是注释“ @ManyToMany”似乎仅可用于“ @JoinTable”,在这种情况下,它不可用(据我所知)。有人知道修改数据库之外是否还有其他方法吗? 问题答案: JPA不允许这样做,因为它需要外键来引用完整的主键以用于标识目的,并且它可能不适用
问题内容: 我从来没有做过这样的PHP / MYSQL技巧来加入多表。请具有该领域经验的人员帮助: TICKETS 表中的字段: 表 RECEPTS中的 字段: 表 PAYMENTS中的 字段: 表 CUSTOMERS中的 字段: 表之间的关系很容易理解: 我希望达到的最终结果: 我试图做这样的事情,但在某个地方出错: 问题答案: 您应该可以使用以下方法获得结果: 参见带有演示的SQL Fiddl
问题内容: 我正在尝试使用hibernate条件生成器连接4个表。 下面分别是这些表。 在这4个表中,我想为MySQL执行以下sql脚本: 那么,如何使用Hibernate CriteriaBuilder实现这一目标?请帮助… 预先感谢....... 问题答案: CriteriaBuilder cb = entityManager.getCriteriaBuilder(); CriteriaQue