반응형

sequelize

    sequelize에서 상황에 따라 조인 테이블을 변경하는 방법 - alias

    sequelize를 사용하다 보면 하나의 필드를 어떤 상황에서는 User테이블과 조인하고 다른 상황에서는 Dept 테이블과 조인을 하고 싶을 때가 있다.예를 들면 만약 로그를 기록 한다 하였을 때 모든 행위마다 로그를 기록할 수는 없기때문에 로그 테이블에 필드에 type을 나누고 발생한 object의 index만을 기록해서 진행하고 싶을 때 그럴 수있다. 그럴경우 targetIndex의 경우 동작 타입에 따라 User테이블과 조인할 수도 있고 Dept 테이블과 조인하는 등 유동적인 조치가 필요하다. 우선 Model을 define 하는 부분을 확인해보자.12345678910111213141516const Pub = Sequelize.define('pub', { name: { type: Sequelize.S..

    sequelize에서 조인 시 left join이 되지 않을 때 처리하는 방법

    sequelize에서 조인을 할때는 include를 사용해서 다음과 같이 한다. 123456await This.User.findOne({ attributes: ['id', ['name', 'userName']], include: [ { model: this.Dept} ]});Colored by Color Scriptercs물론 기존에 Model을 define할 때 연관관계를 설정을 해놓은 상태여야 하고 이렇게 할 경우에 나는 left join이 아니라 inner join으로 다음과 같이 되었다. SELECT id, name as userName FROM User u inner join Dept d on u.userId = d.userId;그래서 검색해서 알아보다보니 required 옵션을 부여하게 되면 ..

    sequelize에서 alias 사용하여 검색하는 방법

    sequelize에서 검색을 할 때 alias를 줘서 검색하는 방법은 다음과 같다. 생각보다 간단하다. 123await This.User.findOne({ attributes: ['id', ['name', 'userName']] //id, first AS firstName});Colored by Color Scriptercs

    sequelize 사용시 테이블 이름 변동없이 고정 Alias 사용방법

    sequelize는 마찬가지로 ORM을 사용하다보니 직접적으로 쿼리를 사용하는 것보다 정확하게 알지못하면 역시 개발속도도 늦어지고 문제가 많아지는 단점이 있다. 이번에는 sequelize를 사용하는데 조인할 때 테이블 이름이 갑자기 User에서 Users로 바뀌는 이슈가 발생했다. 이 이슈를 해결하기 위해서 sequelize Document를 검색했고 거기서 freeTableName 옵션을 발견했다.1234567891011121314151617181920212223242526const Bar = sequelize.define('bar', { /* bla */ }, { // don't add the timestamp attributes (updatedAt, createdAt) timestamps: fals..

반응형