hibenate 의 다 중 관계 설정

9495 단어 hibernate
xml 설정 일시 사용 하기;세 걸음 쯤 걷다
- - - - 무정 한 분할 선 - - - -
1. 다 중 데이터 베 이 스 는 세 장의 표를 만들어 야 한다. 하 나 는 두 개의 외부 키 의 조합 이 고 두 개의 실체 표, user 표 와 role 표 역할 표를 다시 만들어 야 한다.
CREATE TABLE `sys_role` (
  `rid` bigint(20) NOT NULL AUTO_INCREMENT,
  `rname` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`rid`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

사용자 테이블:
CREATE TABLE `sys_user` (
  `uid` bigint(20) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) DEFAULT NULL,
  `password` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

다 중 연결 외부 키 시트:
CREATE TABLE `sys_user_role` (
  `uid` bigint(20) NOT NULL,
  `rid` bigint(20) NOT NULL,
  PRIMARY KEY (`uid`,`rid`),
  KEY `FK73pkd5v8ckvmrx2grvpg26ks1` (`rid`),
  CONSTRAINT `FK73pkd5v8ckvmrx2grvpg26ks1` FOREIGN KEY (`rid`) REFERENCES `sys_role` (`rid`),
  CONSTRAINT `FKput17v9wwg8wiukw8ykroaaag` FOREIGN KEY (`uid`) REFERENCES `sys_user` (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

이상 은 단순히 데이터 뱅 크 의 관점 에서 출발 하여 다음은 hibenate 의 다 중 설정 입 니 다. 구분 해 보 세 요. 이것 은 두 시스템 의 측면 에서 볼 수 있 습 니 다.
2. 사용자 와 캐릭터 를 작성 하 는 자바 빈, 사용자 의 자바 빈 코드 는 다음 과 같 습 니 다.
 public class User {
            private Long user_id;
            private String user_code;
            private String user_name;
            private String user_password;
            private String user_state;

            private Set roles = new HashSet();
        }

캐릭터 의 자바 빈 코드 는 다음 과 같 습 니 다.
public class Role {
            private Long role_id;
            private String role_name;
            private String role_memo;

            private Set users = new HashSet();
        }

즉, hibenate 의 코드 부분 은 외부 키 로 연결 되 는 것 이 아니 라 자신의 한 측 에서 set 집합 으로 자신 과 관련 된 여러 곳 을 기억 하 는 것 이다.
3. 사용자 와 캐릭터 의 맵 설정 파일 은 다음 과 같 습 니 다.
사용자 맵 설정 파일 은 다음 과 같 습 니 다.
<class name="com.itheima.domain.User" table="sys_user">
            <id name="user_id" column="user_id">
                class="native"/>
            id>
            <property name="user_code" column="user_code"/>
            <property name="user_name" column="user_name"/>
            <property name="user_password" column="user_password"/>
            <property name="user_state" column="user_state"/>

            <set name="roles" table="sys_user_role">
                "user_id"/>
                to-many class="com.itheima.domain.Role" column="role_id"/>
            set>
        class>

캐릭터 맵 설정 파일 은 다음 과 같 습 니 다.
<class name="com.itheima.domain.Role" table="sys_role">
            <id name="role_id" column="role_id">
                class="native"/>
            id>
            <property name="role_name" column="role_name"/>
            <property name="role_memo" column="role_memo"/>

            <set name="users" table="sys_user_role" inverse="true">
                "role_id"/>
                to-many class="com.itheima.domain.User" column="user_id"/>
            set>
        class>

4. 여러 쌍 이 서로 연 결 될 때: 한 측 이 외부 키 유지 권 을 포기 해 야 하 는 것 은 그 중의 한 측 에서 설정 하 는 것 입 니 다: inverse = "true" 입 니 다. 세 번 째 단 계 는 이미 설정 되 었 습 니 다. 주의해 서 관찰 하 십시오.
여기 서 주의해 야 할 것 은 xml 설정 은 hibenate 와 데이터 베 이 스 를 결합 하여 설정 한 것 입 니 다. 먼저 hibenate 의 코드 설정 을 참고 하고 사용자 측 설정 set 와 many - to - many 입 니 다.그 다음으로 데이터베이스 의 외 키 테이블 = "sysuser_role "키 column =" userid”
이로써 히 베 네 이 트 의 여러 쌍 이 많 으 면 설정 이 완료 되 고 코드 에서 히 베 네 이 트 로 crud 를 진행 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기