봄 저장 소 조작 카 산 드 라
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.