Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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 呃,我怎样才能在sql中给出参数呢。而Hospital\u Medical是多对多关系的中间表,我是否也需要添加此实体?@Frank2018我编辑了我的答案,以显示正在生成的查询以及您将如何传递参数。关于查询Hospital\u Medical,您必须使用_Java_Mysql_Spring_Hibernate_Jpa - Fatal编程技术网

Java 呃,我怎样才能在sql中给出参数呢。而Hospital\u Medical是多对多关系的中间表,我是否也需要添加此实体?@Frank2018我编辑了我的答案,以显示正在生成的查询以及您将如何传递参数。关于查询Hospital\u Medical,您必须使用

Java 呃,我怎样才能在sql中给出参数呢。而Hospital\u Medical是多对多关系的中间表,我是否也需要添加此实体?@Frank2018我编辑了我的答案,以显示正在生成的查询以及您将如何传递参数。关于查询Hospital\u Medical,您必须使用,java,mysql,spring,hibernate,jpa,Java,Mysql,Spring,Hibernate,Jpa,呃,我怎样才能在sql中给出参数呢。而Hospital\u Medical是多对多关系的中间表,我是否也需要添加此实体?@Frank2018我编辑了我的答案,以显示正在生成的查询以及您将如何传递参数。关于查询Hospital\u Medical,您必须使用该表,因为该表会告诉您哪些医院提供“急救”服务。它很有效!谢谢你的解释!我能再问你一个问题吗?如果我想按邮政编码、医疗和语言搜索医院,我如何编写SQL?@Frank2018,当然没问题。请在此接受此答案,并在单独的问题中提出新问题。只是为了保持


呃,我怎样才能在sql中给出参数呢。而
Hospital\u Medical
是多对多关系的中间表,我是否也需要添加此实体?@Frank2018我编辑了我的答案,以显示正在生成的查询以及您将如何传递参数。关于查询
Hospital\u Medical
,您必须使用该表,因为该表会告诉您哪些医院提供“急救”服务。它很有效!谢谢你的解释!我能再问你一个问题吗?如果我想按邮政编码、医疗和语言搜索医院,我如何编写SQL?@Frank2018,当然没问题。请在此接受此答案,并在单独的问题中提出新问题。只是为了保持整洁。谢谢!这是另一个问题快速链接:。
public List<Hospital> findByPostcodeAndMedicalType(String postcode, String medical) {
        String str = "SELECT h FROM Hospital h INNER JOIN Medical_Service m ON h.hospital_id = m.hospital_id WHERE " 
                + "h.Postcode = :postcode AND m.Medical_name = :medical";
        Query query = em.createQuery(str);
        query.setParameter("postcode", postcode);
        query.setParameter("medical", medical);
        return query.getResultList();

    }
@Entity
@Table(name = "Hospital")
public class Hospital {

@Id
@GeneratedValue
    private int hospital_id;

    private String hospital_name;

    private String postcode;

    private String suburb;

    private String address;

    private String type;

    private String category;

    private String longitude;

    private String latitude;

    private String email;

    private String website;

    private String phoneno;

    private String isemergency;

    private String agencytype;

    private String fax;

    @ManyToMany
    @JoinTable(
        name = "Hospital_Medical",
        joinColumns=@JoinColumn(name="Hospital_id", referencedColumnName="Hospital_id"),
        inverseJoinColumns=@JoinColumn(name="Medical_id", referencedColumnName="Medical_id"))
private List<MedicalService> services;

    @ManyToMany
    @JoinTable(
        name = "Hospital_Language",
        joinColumns=@JoinColumn(name="Hospital_id", referencedColumnName="Hospital_id"),
        inverseJoinColumns=@JoinColumn(name="Language_id", referencedColumnName="Language_id"))
private List<Language> languages;

//Setter and Getter
}
@Entity
@Table(name = "Medical_Service")
public class MedicalService {

@Id
private int medical_id;

private String medical_name;

private String description;

@ManyToMany(mappedBy="services")
private List<Hospital> hospitals;
//Setter and Getter
}
@Entity
@Table(name = "Language")
public class Language {

@Id
private int language_id;

private String language_name;

private String display_name;

@ManyToMany(mappedBy="languages")
private List<Hospital> hospitals;
//Setter and Getter
}
 SELECT h FROM Hospital h
     INNER JOIN Medical_Service m ON h.hospital_id = m.hospital_id
     WHERE h.Postcode = :postcode AND m.Medical_name = :medical
 SELECT * FROM Hospital WHERE Postcode = 3000 AND Hospital_id IN
    (SELECT Hospital_id FROM Hospital_Medical hm INNER JOIN Medical_Service m ON hm.Medical_id = m.Medical_id
    where Medical_name = 'Emergency')
    int postcode = 3000;
    String service = "Emergency";

    StringBuilder sb = new StringBuilder(); 
        sb.append("SELECT * FROM Hospital WHERE Postcode = ");
        sb.append(postcode);
        sb.append("AND Hospital_id IN SELECT Hospital_id FROM Hospital_Medical hm INNER JOIN "
                + "Medical_Service m ON hm.Medical_id = m.Medical_id where Medical_name = '");
        sb.append(service);
        sb.append("')");

    String queryString = sb.toString();
    Query query = em.createNativeQuery(queryString);
    List<Hospital> result = query.getResultList();