Skip to content
samerook edited this page Apr 25, 2012 · 68 revisions

Android ORM의 설명과 현재버전, 구현 기능 목록 등을 위한 공간입니다. 여기서 사용법을 익히십시오.

1. Android ORM - JPA
>> 자바 퍼시스턴스 API(Java Persistence API, JPA)는 관계형 데이터베이스에 접근하기 위한 표준 ORM 기술을 제공하며, 기존에 EJB에서 제공되던 엔티티 빈(Entity Bean)을 대체하는 기술이다. JAP는 220에서 정의된 EJB 3.0 스펙의 일부로 정의가 되어 있지만, JPA는 EJB 컨테이너에 의존하지 않으며 EJB, 웹 모듈 및 Java SE 클라이언트에서 모두 사용이 가능하다. 또한, JPA는 사용자가 원하는 퍼시스턴스 프로바이더 구현체를 선택해서 사용할 수 있다. - EntityManager
EntityManager em = EntityManagerFactory.getEntityManager();
EntityManager API는 하나의 특별한 작업 단위에서 하나의 데이터베이스에 접근하는데 사용된다. 그것은 영속 엔티티 인스턴스들을 생성시키고 제거시키는데, 그것들의 PRIMARY KEY 동일성(identity)로서 엔티티들을 찾는데, 그리고 모든 엔티티들에 대해 질의하는데 사용된다. - create
DatabaseOpenHelper databaseHelper = new DatabaseOpenHelper(this);
EntityManager em = EntityManagerFactory.getEntityManager();
entityManager.createTable(My.class, SQLiteDatabaseUtils.getWritableDatabase(databaseHelper));
- insert / update
EntityManager em = EntityManagerFactory.getEntityManager();
em.getTransaction().begin();
MyClass my = new MyClass(“something”);
em.persist(my);
em.getTransaction().commit();
- find
EntityManager em = EntityManagerFactory.getEntityManager();
em.getTransaction().begin();
MyClass my = em.find(My.class, "something");
em.getTransaction().commit();
- delete
DatabaseOpenHelper databaseHelper = new DatabaseOpenHelper(this);
EntityManager em = EntityManagerFactory.getEntityManager();
entityManager.dropTable(My.class, SQLiteDatabaseUtils.getWritableDatabase(databaseHelper));
- SQLite / Java Type Mapper
>> ColumnType : UNDEFINED, INTEGER, REAL, NUMERIC, TEXT, BLOB, NONE
1. 문제해결 공간 (Troubleshooting) - 링크 제공 1. Annotation recipes - Table
@Table
public class Music {
...
}
- Column
@Column
	private String imageUrl;
	@Column
	private boolean isPlaying;
	@Column
	private byte[] bitmap;
속성값 : PRIMARY KEY / AUTOINCREMENT
@Column
	@GeneratedValue(strategy=GenerationType.SEQUENCE)
	private Integer id;
- One to one - One to many
  1. Criteria
  • Criteria API 사용한 데이터 조회

Criteria API는 Criteria가 제공하는 메소드를 사용해서 데이터 조회와 관련된 조건을 입력한다. 즉, Criteria API는 좀더 객체 지향적인 형태로 검색 조건을 명시할 수 있도록 해 준다.

  • Criteria 기본 사용 형태

Criteria API는 net.sf.hibernate.Criteria 인터페이스를 사용해서 검색 조건을 생성하는데, 다음과 같이 Session.createcriteria() 메소드를 사용해서 기본 검색 조건을 갖는 Criteria 인스턴스를 생성할 수 있다.

Criteria crit = session.createCriteria(My.class);
List list = crit.list();
  1. 캐시 라이브러리 활용
  • 캐시 정책 (1, 2차 캐시의 각 활용법 및 정책 설명)

Clone this wiki locally