발전기 클래스 assigned
을 사용하여 기본 키 값을 할당 해 왔습니다. 나는 hilo
가 더 낫다는 것을 주장하는 몇몇 블로그를 읽었다. assigned
에 대한 혜택이 hilo
이상입니까?발전기 클래스 NHibernate
답변
assigned
은 기본 키를 직접 정의하려는 경우에만 유용합니다.
예를 들어 다른 데이터베이스 또는 가져온 파일에서 어딘가에서 값을 얻으면 assigned
이 유용 할 수 있습니다. 하지만 가장 확실한 것은 정수가 아니라 guid입니다. 비즈니스 데이터와 기본 키인 자연 기본 키를 동시에 사용할 수도 있습니다. 이것을하는 것이 바람직하지 않지만.
assigned
은 특수한 경우를 말하며 일반 응용 프로그램을위한 것이 아닙니다. 일반적으로 인공 키를 사용하므로 정확한 값을 신경 쓰지 않아도됩니다. 적어도 동일한 데이터베이스를 사용하는 여러 프로세스를 고려할 때 직접 값을 생성하는 것은 어려울 수 있습니다.
assigned
과 (대부분의) 다른 ID 생성기 간에는 큰 차이가 있습니다. assigned
키는 NHibernate 나 데이터베이스에 의해 주어지지 않는다. Hibernate는 id가 평가 됨으로써 엔티티가 이미 데이터베이스에 있는지를 알고있다. 자신을 지정할 때 엔티티를 삽입하거나 업데이트해야하는 경우 자신을 알아야합니다. 이것은이 id 생성기를 특별하게 만듭니다. 다른 ID 생성기를 사용할 때 assigned
을 사용할 때 코드가 다르게 보일 것입니다.
그래서 기본적으로 내 hbm.xml 파일을 생성자'hilo'를 사용하여 수정하고 내 엔티티에서 기본 키를 설정하는 인스턴스를 제거 할 수 있습니까? –
예,'hilo' (또는'assigned '를 제외한 다른 생성자)를 사용할 때, 당신은 자신을 생성 할 필요가 없습니다. 기본 키는 엔티티가 세션에 들어갈 때 설정됩니다 (예 : Update, Merge, SaveOrUpdate 호출시). Hilo는 ID를 생성하기 위해 (대부분의 경우) 데이터베이스 왕복이 필요하지 않습니다. hilo 생성 된 ID를 직접 설정하면 이상한 동작이 발생합니다 ...) –
- 1. 전달 파라미터 레일 2 개 발전기 발전기
- 2. 재사용 발전기
- 3. 최대 절전 발전기 태그
- 4. 루트, 보석 및 발전기
- 5. 관입 클래스 장식없이 NHibernate?
- 6. 클래스 라이브러리에있는 NHibernate?
- 7. 코드에서 nhibernate 하위 클래스
- 8. NHibernate 매핑 범용 클래스
- 9. Fluent NHibernate : 서브 클래스 내부의 서브 클래스
- 10. Bignum이 라이브러리, 느린 주요 발전기
- 11. 유창 NHibernate 상속 기본 클래스
- 12. NHibernate 검색 특정 서브 클래스
- 13. 클래스 라이브러리가있는 웹 폼 nhibernate
- 14. 런타임시 NHibernate 클래스 확장/수정
- 15. NHibernate 매핑되지 않은 클래스 예외
- 16. nhibernate 및 가상 클래스 속성?
- 17. Nhibernate 서브 클래스 매핑 문제
- 18. Nhibernate : 프록시 클래스 대신 실제 엔티티 클래스 가져 오기
- 19. 유창한 NHibernate - 서브 클래스 당 테이블과 클래스 당 테이블을 섞음
- 20. 자바 스크립트 켄 켄 퍼즐 발전기
- 21. 심포니 관리 발전기 일대일 관계 내 모델이
- 22. , 다른 변량 발전기 같은 난수 생성기를 사용하는이
- 23. 레일 마이그레이션 발전기 ... 아마 사소한 뭔가가
- 24. NHibernate 상속 클래스 그러나 유지할 필요가 없습니다.
- 25. nHibernate 복합 키 클래스 유형 불일치
- 26. Help Fluent NHibernate 일반 클래스 매핑하기
- 27. 클래스 및 NHibernate 엔터티에서 컬렉션 속성 처리
- 28. 서브 클래스 관계로 Fluent NHibernate automap 상속
- 29. nHibernate - 복잡한 다 대다 클래스 매핑
- 30. 이중 NHibernate 클래스 수준 검사기 문제
더 나은 방법은 할당 방법에 따라 다릅니다. 당신은 무엇을 할당합니까? – Paco
@Paco : 기본 키. –