2017-10-25 3 views
0

私はスプリングブートを使用しています。xmlファイルでネイティブクエリを定義したいと思います。ここで が実体である:スプリングブートでxmlでネイティブクエリを定義する方法

@NamedNativeQuery(name = "findAllUsers",query = "select * from user") 
@Entity 
@Table(name="user") 
public class User implements Serializable { 
    @Id 
    @GeneratedValue 
    @Column(name = "UserId") 
    private Integer userId; 
} 

とリポジトリ:

@Repository 
public interface UserDao extends CrudRepository<User, Integer>, JpaSpecificationExecutor<User> { 
    @Query(name="findAllUsers") 
    List<User> findAllUsers(); 
} 

私はネイティブSQL-oracle.xmlおよびネイティブSQL-mysql.xml間をすばやくネイティブSQLを切り替えたいです。

+0

JPAは、ファイル "orm.xml" をサポートしています。どのJPAドキュメントにもあります – DN1

答えて

0

ちょうどそれがスプリングによってスキャンし、自動になり、リソースディレクトリ内.hbm.xmlファイルを追加

サンプルXML:。

<?xml version="1.0" encoding="UTF-8"?> 
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd" version="1.0"> 
    <package>com.xxx.auth</package> 
    <entity class="User"> 
     <named-native-query name="searchUser" result-class="User"> 
      <query> 
       <![CDATA[ 
       SELECT * FROM User 
       ]]> 
      </query> 
     </named-native-query> 
    </entity> 
</entity-mappings> 
関連する問題