Greetings, guys. So, the current implementation was found adequate for the first version. But there are two issues which Semen found.
1) now cache name is bound to a repository at compile time, could you please try to investigate if a more flexible binding is possible? 2) as I see now all spring-data integrations are hosted here - https://github.com/spring-projects, Could you please investigated how ignite integration can be added there? First one, I don't see possibilities to provide cache names from Spring configuration to repository factory (except system properties). Second, I haven't found how to publish our spring-data implementation to spring-projects repository. I will continue the investigation. But maybe someone already knows the answers. On Tue, Aug 9, 2016 at 2:46 PM, Eduard Shangareev < eduard.shangar...@gmail.com> wrote: > Guys, I have made a pull request. > > https://github.com/apache/ignite/pull/931 > <https://issues.apache.org/jira/browse/IGNITE-1192#> > > New module spring-data was added. > > The example of repository: > > @RepositoryConfig(cacheName = "cache") > public interface FirstRepository extends IgniteRepository<Person, Integer> { > /** */ > public List<Person> findByFirstName(String val); > > /** */ > public List<Person> findByFirstNameContaining(String val); > > /** */ > public List<Person> findByFirstNameRegex(String val, Pageable pageable); > > /** */ > public Collection<Person> findTopByFirstNameContaining(String val); > > /** */ > public Iterable<Person> findFirst10ByFirstNameLike(String val); > > /** */ > public int countByFirstNameLike(String val); > > /** */ > public int countByFirstNameLikeAndSecondNameLike(String like1, String > like2); > > /** */ > public int countByFirstNameStartingWithOrSecondNameStartingWith(String > like1, String like2); > > /** */ > public List<Cache.Entry<Integer, Person>> findBySecondNameLike(String > val); > > /** */ > public Cache.Entry<Integer, Person> findTopBySecondNameLike(String val); > > /** */ > public Person findTopBySecondNameStartingWith(String val); > > /** */ > @Query("firstName = ?") > public List<Person> simpleQuery(String val); > > /** */ > @Query("firstName REGEXP ?") > public List<Person> queryWithSort(String val, Sort sort); > > /** */ > @Query("SELECT * FROM Person WHERE firstName REGEXP ?") > public List<Person> queryWithPageable(String val, Pageable pageable); > > /** */ > @Query("SELECT secondName FROM Person WHERE firstName REGEXP ?") > public List<String> selectField(String val, Pageable pageable); > > /** */ > @Query("SELECT _key, secondName FROM Person WHERE firstName REGEXP ?") > public List<List> selectSeveralField(String val, Pageable pageable); > > /** */ > @Query("SELECT count(1) FROM (SELECT DISTINCT secondName FROM Person > WHERE firstName REGEXP ?)") > public int countQuery(String val); > } > > > A user should extend IgniteRepository and provide cache name via > @RepositoryConfig. > > IgniteRepository extends CrudRepository and deprecates unsupported > operation (without id). > > > > > > On Tue, Aug 9, 2016 at 12:06 AM, Valentin Kulichenko < > valentin.kuliche...@gmail.com> wrote: > >> Eduard, >> >> It's up to you :) I'm just saying that we should split the big task into >> smaller ones. >> >> -Val >> >> On Mon, Aug 8, 2016 at 3:57 AM, Eduard Shangareev < >> eduard.shangar...@gmail.com> wrote: >> >> > Hi, Valentin. >> > I am going to close these ticket with some prototype and create new ones >> > (maybe, with umbrella one). >> > >> > Will it work? >> > >> > On Sat, Aug 6, 2016 at 8:03 AM, Valentin Kulichenko < >> > valentin.kuliche...@gmail.com> wrote: >> > >> > > Hi Eduard, >> > > >> > > This is too much information :) >> > > >> > > I think you should create separate tickets for different aspects of >> > Spring >> > > Data integration and use IGNITE-1192 only as an umbrella, because >> > otherwise >> > > it will be flooded by comments. This will allow to implement this >> > > functionality step by step and track the progress better. >> > > >> > > Agree? >> > > >> > > -Val >> > > >> > > On Fri, Aug 5, 2016 at 4:17 AM, Eduard Shangareev < >> > > eduard.shangar...@gmail.com> wrote: >> > > >> > > > So there is no async support for query, therefore we can't support >> > > futures >> > > > as return type (paragraph 2). >> > > > >> > > > On Thu, Aug 4, 2016 at 6:08 PM, Eduard Shangareev < >> > > > eduard.shangar...@gmail.com> wrote: >> > > > >> > > > > I have looked at Querydsl and QbE and I think their support >> should be >> > > > > postponed. >> > > > > >> > > > >> > > >> > >> > >