Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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
Mysql 如何将本机SQL查询转换为java应用程序的jpa查询_Mysql_Spring Data Jpa_Spring Data - Fatal编程技术网

Mysql 如何将本机SQL查询转换为java应用程序的jpa查询

Mysql 如何将本机SQL查询转换为java应用程序的jpa查询,mysql,spring-data-jpa,spring-data,Mysql,Spring Data Jpa,Spring Data,您需要创建Book和Author实体并建立映射。 由于您的模式将作者id存储在books表中。。。我假设这里有多对一映射 SELECT b.books_name,b.books_id FROM BOOKS b JOIN AUTHOR a ON b.AUTHOR_ID = a.AUTHOR_ID WHERE a.AUTHOR_NAME='WILLIAM'; JPA查询 @Entity @Table(name="BOOKS") Class Books { @Id

您需要创建Book和Author实体并建立映射。 由于您的模式将作者id存储在books表中。。。我假设这里有多对一映射

SELECT b.books_name,b.books_id FROM BOOKS b JOIN AUTHOR a 
ON b.AUTHOR_ID = a.AUTHOR_ID WHERE a.AUTHOR_NAME='WILLIAM';
JPA查询

@Entity
@Table(name="BOOKS")
Class Books {
    @Id
    Integer booksId;
    String booksName;
    @ManyToOne
    @JoinColumn(name="AUTHOR_ID")
    Author author;
    ... more fields
    public Books(Integer booksId, String booksName) {
        this.booksId = booksId;
        this.booksName = booksName;
    }
}

@Entity
@Table(name="AUTHOR")
Class Author {
    @Id
    String authorId;
    String authorName;
    ... more fields
}
@Query(“从图书b中选择新书(b.booksId,b.booksName),其中b.author.authorName='WILLIAM')
列出findMatchingBooks();

提供实体的更多详细信息。比如字段名和mapping.thnks,这很有帮助
@Query("Select new Books(b.booksId, b.booksName) from Books b where b.author.authorName = 'WILLIAM'")
List<Books> findMatchingBooks();