Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/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 涉及外键的JPA自定义查询_Java_Jpa - Fatal编程技术网

Java 涉及外键的JPA自定义查询

Java 涉及外键的JPA自定义查询,java,jpa,Java,Jpa,我想做一个JPA查询来计算有多少记录具有特定的外键 实体: @Entity(name = "person") @Inheritance(strategy = InheritanceType.JOINED) public class Person { @Id private Long id; private String firstName; private String lastName; private String phoneNumber; @OneToMany(f

我想做一个JPA查询来计算有多少记录具有特定的外键

实体:

@Entity(name = "person")
@Inheritance(strategy = InheritanceType.JOINED)
public class Person {

  @Id
  private Long id;
  private String firstName;
  private String lastName;
  private String phoneNumber;
  @OneToMany(fetch = FetchType.LAZY, cascade = {CascadeType.ALL})
  @JoinColumn(name = "ADRESS_FK")
  private ADDRESS address;
}


@Entity(name = "address")
public class Address {

  @Id
  private Long id;
  private String country;
  private String city;
  private String street;
  private String number;
}
这就是我正在尝试的,这在JPA中会是什么样子

public Long getOccurences( Long id ) {
  Query query = _entityManager.createQuery( "Select count(*) from Persons p where p.address = ?1" );
  query.setParameter( 1, id );
  return query.getSingleResult() );

}

您是否尝试了
其中p.address.id=?1
?我想它应该可以工作。我也会这么想,而且你可能还想使用
COUNT(p)
而不是
*
.public Long getoccurrences(Long id){Query Query Query=\entityManager.createQuery(“Select*from Persons p其中p.address=?”);Query.setParameter(1,id);return Query.getResultList().size();