2013-02-26 6 views
0

누군가는 다음과 같은 경우에 최대 절전 모드에서 적절한 주석을 설정하는 나를 도울 수 :최대 절전 모드 OneToMany는

계정, 카드 및 AccountCard :

나는 세 개의 테이블이있다.

AccountCard가 카드와 계정 간의 OneToMany 관계 테이블에 가입합니다 (계정에 카드가 많고 하나의 계정에만 카드가 연결됨).

목록 카드 속성과 카드 모델 계정 계정 속성을 계정에 추가해야합니다. 이것은 쉬운 일입니다.

카드로 계정을 유지하면서 "null 값을 AccountCard.id에 삽입 할 수 없습니다"라는 문제가 있습니다. 또한 테이블을 조인하기 위해 ID를 생성하기 위해 시퀀스를 사용해야하지만 방법을 알 필요가 없습니다.

도움이 될 것입니다. 나는 목록 카드가 추가되지 않도록 계정 클래스의 매핑을하고 싶지 않아

@ManyToOne(fetch = FetchType.LAZY) 
@JoinTable(name = "account_card", joinColumns = @JoinColumn(name = "crd_id"), inverseJoinColumns = @JoinColumn(name = "acc_id")) 
private Account account; 

: 여기

는 카드의 코드입니다.

+0

계좌 및 카드 엔티티의 코드를 최소한 관계에 대한 주석을 포함하여 표시하면 도움이 될 것입니다. –

+0

계정에 카드 부분을 추가했습니다. 카드 – Mungo

답변

0

데이터베이스 (내 경우에는 mysql)에서 테이블을 먼저 생성 한 다음 nebans와 같은 IDE로 엔티티를 만들려고 했습니까? 와 MySQL의에서 자동 증가 id 컬럼은 다음 종료 : 내가 볼 당신의 @JoinTable 주석에서 데이터베이스에서

+0

에 대한 참조를 원하지 않습니다. - 순서를 사용해야합니다. - autoincrement는 옵션이 아니며, 테이블에 가입하면 앱에 모델이 없습니다. 필요하지 않습니다. – Mungo

+1

시도하지는 않았지만이를 @GeneratedValue (strategy = GenerationType.SEQUENCE)로 변경하는 것으로 충분하지 않습니까? – Kaffee

+0

흠, AccountCard 테이블을 조인 할 모델 클래스가 없습니다. 그래서 그 주석을 어디에 추가 하시겠습니까? @CollectionId와 같은 것에 대해 생각하고 있었지만 이것은 컬렉션에만 사용되었습니다. 여기서는 단일 참조가 있습니다 (OneToMany 임). – Mungo

0

을 엔티티를 생성하는 넷빈즈를 사용하는 방법 샘플에 대한 아웃 http://netbeans.org/kb/docs/javaee/ecommerce/entity-session.html

@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
@Basic(optional = false) 
@Column(name = "ID") 
private Integer id; 

를 점검 account_name 테이블을 참조하고 아니요 AccountCard입니다. 실제로 어딘가에 AccountCard 테이블이 있습니까?

일반적으로 조인 테이블에는 자체 ID 키가 필요하지 않으며 테이블 DDL을 최대 절전 모드로 자동 생성하는 경우 조인 테이블에는 하나도 포함되지 않습니다.

참으로 조인 테이블에 ID가 필요한 경우, 절전 모드를 인식 할 수있는 방법이나 필요성이 없다고 생각하지만 SQL DDL에 NOT NULL AUTO_INCREMENT 열을 만들어야합니다.