1
c4f36e5766583218 2019-05-29 23:42:27 +08:00
|
2
cccy0 OP @c4f36e5766583218 #1 JPA 是 Java Persistence API 的简称,中文名 Java 持久层 API,是 JDK 5.0 注解或 XML 描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
import javax.persistence.EntityManager; import javax.persistence.TypedQuery; import javax.persistence.criteria.*; 这些在 persistence 包下面的接口或抽象类, 都是 JPA 的规范 你说的那是 spring data jpa = = |
3
c4f36e5766583218 2019-05-31 10:21:53 +08:00
你说的返回 List<Map> java.util.Map 不是一个 @javax.persistence.Entity 呀
|
4
cccy0 OP @c4f36e5766583218 #3 spring data jpa 底层有一个实现了 convert 接口的转换类, 就是用来把查询结果集转换成 Map 的,但是他太底层而且封装的太死了所以没法复用 = =,如果用 Map 来接收返回值, 类似这样:
public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificationExecutor<User> { List<Map> findAllByUsernameAndIsDeleted(String username, Integer isDeleted); 那么他就会调用这个转换类来转换成 Map, 但是 criteria 查询并没有这样的支持直接转换成 Map 的东西 -.- |
5
c4f36e5766583218 2019-06-01 21:29:22 +08:00
你都提到了 import javax.persistence.EntityManager;那是否一定得用到 javax.persistence.Entity 这个类呢?如果是,你有用到吗?
|
6
cccy0 OP @c4f36e5766583218 #5。。我说了好多遍了, @Entity 这个注解肯定是用的到的,因为 ORM 框架要用这个类来定义实体 我上方代码中的 public interface UserRepository extends JpaRepository<User, Long> 这个借口你没有看到吗, 如果我没有用注解 @Entity 注解 User 这个实体类,那么它能放在 JpaRepository<User, Long> 的泛型里吗
|
7
cccy0 OP @c4f36e5766583218 #5 我一直在强调的是 JPA 的“ criteria ” 查询,是可以把查询出来的结果直接转换成实体类的,但是它并 不能优雅地把查询结果转换成 Map 这种数据结构, 我说了好多次 ” criteria 查询“, 但是你一直在说 @Entity 这个注解,这个只是定义实体的一个注解而已, 我觉得你没明白我提出的问题
|
8
c4f36e5766583218 2019-06-03 09:58:32 +08:00
```让它返回 List<Map>这种类型``` 应该不行,返回结果可以是
1. Entity 2. List<Entity> 3. 基本数据类型,number,boolean 4. 其它??? 这样吧??? |
9
cccy0 OP @c4f36e5766583218 #8 是可以返回 Map 的, 比如 List<Map<String,Object>>这种是可以的
|