nHibernate에 대해 저를 괴롭히는 한 가지 사실은 100 % 컴파일 타임 테스트가 아니라는 것입니다.어떻게 nHibernate가 100 % 컴파일 시간을 테스트 할 수 없습니까?
데이터베이스 테이블의 열 이름을 바꾸고 해당 테이블의 매핑 파일을 업데이트하면 컴파일 할 때 해당 열 이름을 참조한 모든 쿼리 코드 (hql/criteria 등)에 오류가 발생합니다 어떻게 철자가 잘못되었는지.
ORM을 사용하는 모든 점 (어쨌든)은 데이터베이스 변경으로 인해 쿼리가 손상되지 않습니다. 즉
은, 내가 대신 점점 런타임 오류 등으로 고정 할 필요가 무엇인지 컴파일시에 통보됩니다
아아아, 그렇다면 그것은 그 다음에 부끄러운 문제처럼 보입니다. 그 점을 지적 해 주셔서 감사합니다! – Blankman
하지만 기준 쿼리로 인해 깨질 것입니다. 당신이 SetBlah ("asdf")를 할 때처럼 – Blankman
우리는 여전히 DB 전용 변경에 대해 이야기하고 있다고 가정 할 때, 그것은 Criteria를 깨뜨리지 않아야한다. LastName이라는 속성을 가진 엔티티 클래스가있는 경우 Criteria 쿼리는 "LastName"을 참조합니다 (예 :'.Add (Restrictions.Eq ("LastName", "Example last name"))). 따라서 매핑 파일을 최신 상태로 유지하는 한 열 이름을 성, 성 또는 성 등으로 변경하더라도 문제가되지 않습니다. 코드 * 항상 * 코드를 참조합니다. . NH는 코드와 데이터베이스의 관심사를 분리합니다. –