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

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

**[Get Started!](Get Started!)**

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, index);
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
  2. 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