私はSpringプロジェクトを作成しました。私は1つのファイルに対して複数のクエリを作成したいと思います。 、そして、インタフェースTodoRepository.java
複数の名前付きクエリ(春)
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.Repository;
import java.util.List;
interface TodoRepository extends Repository<Todo, Long> {
@Query(nativeQuery = true)
public List<Todo> findByTitleIs();
}
spring.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_2_0.xsd"
version="2.0">
<named-query name="Todo.findByTitleIs">
<query>SELECT t FROM Todo t WHERE t.title = 'title'</query>
</named-query>
</entity-mappings>
:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="employeeDAO" class="com.journaldev.spring.jdbc.dao.EmployeeDAOImpl">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="employeeDAOJDBCTemplate" class="com.journaldev.spring.jdbc.dao.EmployeeDAOJDBCTemplateImpl">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="todoRepositoryBean" class="com.journaldev.spring.jdbc.dao.TodoRepositoryBeanImpl">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/springdb" />
<property name="username" value="root" />
<property name="password" value="root" />
</bean>
</beans>
をグーグル後、私は、ファイルorm.xml
を作成する必要があり、https://www.petrikainulainen.net/programming/spring-framework/spring-data-jpa-tutorial-creating-database-queries-with-named-queries/
だから、このリンクを見つけましたクラスSpringMain.java
がある:
public class SpringMain {
public static void main(String[] args)
{
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("spring.xml");
EmployeeDAO employeeDAO = ctx.getBean("todoRepositoryBean", EmployeeDAO.class);
List<Employee> les = employeeDAO.getAll();
System.out.println("The list size is: + les.size()");
ctx.close();
}
}
私はそれが便利だったと思うが、私は問題を発見:どのように私はmain
クラスに名前付きクエリTodo.findByTitleIs
を使用することができますか?
:あなたはまた、メソッド名メカニズムからクエリの作成を使用しており、このような以前のクエリを記述することができ
最初のメインクラス?また、ドキュメンテーションを見てください。注釈を使用すると、あなたの経験が向上すると思います。http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query- methods.named-queries –私は同意すると、注釈はすべてを簡単にすると思います。とにかく、実際にメインクラスのクエリが必要な場合(理由は?)、単純にBeanになるため、ApplicationContextからTodoRepositoryを取得できます。 –
こんにちは、はいメインクラスでは不要なBeanクラスのクエリが必要です。私は私の質問にspring.xmlとSpringMain.javaというファイルを追加しました。 TodoRepositoryを実装すべきクラスTodoRepositoryBeanImplの例を私に教えてもらえますか?ご協力いただきありがとうございます。 – Rosa