Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在spring数据jpa中使用联接查询多表的列_Java_Spring Mvc_Spring Boot_Spring Data Jpa - Fatal编程技术网

Java 在spring数据jpa中使用联接查询多表的列

Java 在spring数据jpa中使用联接查询多表的列,java,spring-mvc,spring-boot,spring-data-jpa,Java,Spring Mvc,Spring Boot,Spring Data Jpa,说明: 我有两张桌子,Shop_Employee和Shop_Employee类型。我想在显示员工详细信息时直接显示typeName,但我不想配置这两个实体之间的relationshipOneToMany或ManyToOne。因为这将加载所有Shop\u Employee\u Type列的值,但这些值对我来说是无用的,我只需要Shop\u Employee\u Type的typeName。 下面是我的代码,但它不起作用 商店雇员类型: 商店职员: 存储库: 这可能会如我所愿显示typeName,但

说明:

我有两张桌子,Shop_Employee和Shop_Employee类型。我想在显示员工详细信息时直接显示typeName,但我不想配置这两个实体之间的relationshipOneToMany或ManyToOne。因为这将加载所有Shop\u Employee\u Type列的值,但这些值对我来说是无用的,我只需要Shop\u Employee\u Type的typeName。 下面是我的代码,但它不起作用

商店雇员类型:

商店职员:

存储库:


这可能会如我所愿显示typeName,但在保存新实体Shop_员工时出现错误;如果我为“typeName”添加@Transient,它可以成功保存,但是当我查询实体Shop_Employee时,“typeName”的值为空。

您的查询应该返回两个对象Shop_Employee和一个字符串,因此返回结果不应该是List,应该是:

@Query(value = "select u.*, t.type_name from shop_employee ...", nativeQuery = true)
List<Object[]> findAllData();
因此,在ShopEmployee实体中,您不需要使用:

//@Transient
//private String typeName;
@Query(value = "select u.*,t.type_name from shop_employee u inner join shop_employee_type t on u.type_id=t.type_id", nativeQuery = true)
List<ShopEmployee> findAllData();
@Query(value = "select u.*, t.type_name from shop_employee ...", nativeQuery = true)
List<Object[]> findAllData();
List<Object[]> list = findAllData();
for(Object[] obj : list){
   ShopEmployee shopEmployee = (ShopEmployee) obj[0];
   String type_name = (String) obj[1];
}
//@Transient
//private String typeName;