본문 바로가기

typeorm2

[TypeORM] 왜 엔티티 클래스 프로퍼티를 private으로 할 수 없을까? 문제 상황 TypeORM 사용 중 Entity 클래스의 프로퍼티를 private으로 변경했더니 이런 에러가 발생했습니다. "Property "id" was not found in "Expense". Make sure your query is correct."처음에는 프로퍼티 이름 앞에 언더스코어를 붙여서 매핑이 안 되는 건가 했는데, 프로퍼티를 public으로 해야만 데이터베이스와 객체가 자동으로 매핑되는 것이었습니다.JPA를 사용할 때는 엔티티의 모든 멤버 변수를 private으로 선언하고 getter & setter를 두어 캡슐화를 하여, 엔티티에 비즈니스 로직을 담은 public 메서드를 두어 서비스에서 호출하는 것이 도메인 주도 설계의 정석(?)이라고 알고 있습니다... TypeORM에서도 이와 .. 2024. 9. 9.
[TypeORM] TypeORM에서 트랜잭션 다루는 방법 TypeORM 0.3 이상 버전을 기준으로 트랜잭션을 다루는 방법을 정리했습니다. Transaction트랜잭션은 데이터베이스에서 한꺼번에 수행되어야 하는 작업 단위를 말합니다.트랜잭션의 중요한 특징 중 하나는 트랜잭션이 데이터베이스에 모두 반영되든지, 아니면 전혀 반영되지 않아야 하며 작업이 부분적으로 실행되거나 중단되지 않는 것을 보장하는 것입니다. (ACID 중 Atomicity, 원자성) DataSource & EntityManager / QueryRunnerTypeORM에서는 DataSource & EntityManager 또는 QueryRunner를 통해 트랜잭션을 생성하고 사용할 수 있습니다.두 가지 방법을 설명하기에 앞서, TypeORM에서의 DataSource, EntityManager, .. 2024. 8. 5.