2017-11-24 6 views
0

현재 인터페이스가 동일한 다른 개체로 OneToMany ArrayList이 필요합니다. 예를 들어인터페이스가있는 최대 절전 모드 OneToMany

: 난 그냥 그냥 Product 인터페이스를 구현하여 다른 제품을 추가하기 쉽게 할

@Entity 
@Table(name = "store") 
public class Store { 
    @OneToMany(mappedBy = "store") 
    private List<Product> allProducts; 
} 

public interface Product { 
    String getProductCode(); 
} 

@Entity 
@Table(name = "car") 
public class Car implements Product{ 
    int wheels; 
} 

@Entity 
@Table(name = "computer") 
public class Computer implements Product{ 
    String cpu; 
} 

. 그러나 최대 절전 모드는 나에게이 오류를 준다 : 'One To Many' attribute value type should not be 'Product'.

이 문제와 관련된 게시물을 찾았지만 5 세 이상입니다. 결국 그들은 이것이 가능하지 않다는 결론을 내 렸습니다.

이 문제를 해결하기 위해 지난 5 년 동안 어떤 기능을 추가 했습니까? 아니면 동일한 OneToMany 관계에 여러 객체를 추가하는 다른 좋은 방법이 있습니까? 새 제품을 추가 할 때마다 Store 클래스를 업데이트하고 싶지 않습니다.

+1

인터페이스 대신 매핑 된 수퍼 클래스를 사용하면 어떻습니까? 너는 할수 있니 ? – gtosto

+0

@gtosto 그래, 할 수 있다고 생각해. 그러나 나는 그것을 가장 깨끗한 방법으로하려고 노력하고있다. 그리고 내 상황에서는 인터페이스가 더 좋습니다. – klokklok

답변

1

Did hibernate add any functionality in the last 5 years to solve this problem or are there any other good ways of adding multiple objects in the same OneToMany relation? I don't want to update my Store class every time I add a new product.

나는 (또는 적어도 그것을 매핑 된 슈퍼 클래스를 만들기 위해) 는 엔티티에Product을 촉진하기 위해 사용자의 요구에 맞게 가장 좋은 방법이라고 생각합니다. 어쨌든 @Any 주석은 상황에 도움이 될 수 있으며 다형성 연관을 모델링하는 데 사용됩니다.

+0

답변을 완료하지 못하셨습니까? '제품'을 홍보하십시오 .... – klokklok

+0

lol 죄송합니다 ... pc crash :) – gtosto