私はJava EEプロジェクトに取り組んでおり、次のようなエンティティがあります:
@Entity
public class Location {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long messageId;
@ManyToOne
private User user;
private String name;
private Float latitude;
private Float longitude;
}
また、これらの場所が直径 1 km の円内にある場合は、中心点でこれらの場所をフィルター処理する必要があります。
A、B、C、E の場所のみを返すこのようなメソッドが必要です。
public List<Location> findLocations(Float longitude, Float latitude) {
List<Location> locations =
entityManager.createQuery("select l from Location where ???")
.setParameter("longitude", longitude)
.setParameter("latitude", latitude)
.getResultList();
return locations;
}
いくつかのコード サンプルを見つけましたが、db のすべての場所を反復処理する必要があります (これには実際にコストがかかります)。
で直接できますcreateQuery()
か?
注:私は使用しています
MySQL