봄 저장 소 조작 카 산 드 라

4373 단어 springcassandra
더 읽 기
1. 정의 인터페이스
  상속 통과 CrudRepository
public interface PersonRepository extends CrudRepository {
    List findByNameLike(String name);
}

 2. 카 산 드 라 의 설정
  AbstractCassandraConfiguration 을 계승 하여 기본 라 이브 러 리 를 지정 하고 EnableCsandraRepositories 주 해 를 추가 합 니 다.
@Configuration
@EnableCassandraRepositories
public class ApplicatonConfig extends AbstractCassandraConfiguration {
    /**
     *   Cassandra   
     * @return
     */
    @Override
    protected String getKeyspaceName() {
        return "cycling";
    }

    /**
     *     bean     
     * @return
     */
    @Override
    public String[] getEntityBasePackages() {
        return new String[] { "com.github.theseus.spring.cassandra.domain" };
    }
}

  3. 실체 클래스 정의, 맵 테이블
@Table
public class Person {

    @PrimaryKey
    private String id;
    private String name;
    private Integer age;

    public Person(String id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }
    // get set  ……
    @Override
    public String toString() {
        return String.format("{ @type = %1$s, id = %2$s, name = %3$s, age = %4$d }",
                getClass().getName(), getId(), getName(), getAge());
    }
}

 4. 유닛 테스트
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = ApplicatonConfig.class)
public class ReposityTest {
    @Autowired
    PersonRepository repository;

    @Test //      
    public void testReadAll() {
        Iterable personpIterable = repository.findAll();
        personpIterable.forEach(p -> System.out.println(p.toString()));
    }

    @Test //  
    public void testCreate() {
        Person p = new Person(UUID.randomUUID().toString(), "theseus", 21);
        repository.save(p);
    }

    @Test //  ,      
    public void testUpdate() {
        Person p = new Person("5931583b-39b2-48ac-ba5d-e7b63523a97f", "Jon Doe", 40);
        repository.save(p);
    }

    @Test //    
    public void testBatchCreate() {
        List personList = new ArrayList<>();
        for (int i=0;i<10;i++) {
            personList.add(new Person(UUID.randomUUID().toString(), "  " + i, 50 + i));
        }
        repository.saveAll(personList);
    }

    /**
     *   SASIIndex  ,       
     */
    @Test //         
    public void testFind() {
        List personList = repository.findByNameLike("  %");
        personList.stream().forEach(p -> System.out.println(p.toString()));
    }

}

  5. 결과 출력
 
{ @type = com.github.theseus.spring.cassandra.domain.Person, id = 6c05f079-5f2a-4ec0-bf97-7266c7361b87, name =   4, age = 54 }
……
……
{ @type = com.github.theseus.spring.cassandra.domain.Person, id = e3f14738-cf8e-47ad-8188-a4e53344b4a2, name =   1, age = 51 }

 
6. 사용자 정의 방법 설명
   findBy + "속성" + 조작 키워드
키워드
설명 하 다.After/ Before
날짜 비교, GreaterThan/ GreaterThanEqual
>、>= LessThan/ LessThanEqual In
sql 의 IN 과 유사Like , StartingWith , EndingWith
모호 일치Containing on String
문자열 포함 기능Containing on Collection
집합 포함 기능
지정 되 지 않 았 을 때 정확하게 일치 합 니 다.IsTrue , True/IsFalse , False
Boolean 조회
 
7. 프로젝트 주소
  https://github.com/hjguang/spring-cassandra

좋은 웹페이지 즐겨찾기