Java 如何使用JPA或JPQL从没有主键列的实体中获取记录

Java 如何使用JPA或JPQL从没有主键列的实体中获取记录,java,oracle,Java,Oracle,我有一个没有主键或可嵌入键的表(将两列组合在一起以唯一地表示表中的数据) 那么,如何根据一个特定列从该表中获取所有记录呢 Select * from player where city = 'MUMBAI' 我想从播放器表中获取所有记录,但它没有主键,城市是孟买。 我想为此编写JPA或JPQL。查询表不需要PK。只需使用本机查询: Query q = em.createNativeQuery("Select * from player where city = 'MUMBAI'"); List

我有一个没有主键或可嵌入键的表(将两列组合在一起以唯一地表示表中的数据)

那么,如何根据一个特定列从该表中获取所有记录呢

Select * from player where city = 'MUMBAI'
我想从播放器表中获取所有记录,但它没有主键,城市是孟买。
我想为此编写JPA或JPQL。

查询表不需要PK。只需使用本机查询:

Query q = em.createNativeQuery("Select * from player where city = 'MUMBAI'");
List<Object[]> players = q.getResultList();
Query q=em.createNativeQuery(“从播放器中选择*城市=‘孟买’”);
List players=q.getResultList();

查询表不需要PK。只需使用本机查询:

Query q = em.createNativeQuery("Select * from player where city = 'MUMBAI'");
List<Object[]> players = q.getResultList();
Query q=em.createNativeQuery(“从播放器中选择*城市=‘孟买’”);
List players=q.getResultList();

如果您的两列唯一地标识了该行,并且您不打算修改它们的值,则将它们设置为复合ID。但您最好做正确的事情,并将自动生成的PK添加到表中。JPQL:
从播放器p中选择p,其中p.city='MUMBAI
;如果您的两列唯一地标识了该行,并且您不打算修改它们的值,那么将它们设置为复合ID。但您最好做正确的事情,并将自动生成的PK添加到表中。JPQL:
从播放器p中选择p,其中p.city='MUMBAI
;如果我想用JPA的CurdRespository实现同样的效果,那么它是如何工作的。如果你有不同的问题,那么发布一个新的问题。如果我想用JPA的CurdRespository实现同样的效果,那么它是如何工作的。如果你有不同的问题,那么发布一个新的问题