2013-04-18 2 views
0

두 테이블이 있습니다.Java에서 Hibernate 매핑

거리

거리 경로

을 가지고,

"Street_id", "StreetName", "description" 

경로

"path_id", "pathDescription", "path_name" 

을 가지고 있으며, 하나 개의 테이블 더 많은 것이있다

"path_id", "Street_id" 

지금 나는 그런 적 레코드가 거리, 거리 경로에서 기록도 삭제됩니다에서 삭제 될 때 이러한 테이블 사이의 관계를 만들려는 있지만 직접적인 관계 배를 가질 수 없습니다. 번지경로은 직접적인 관계가있을 수 있으며 경로는으로 그대로 유지해야합니다.

최대 절전 모드에서 수행하는 방법은 무엇입니까?

추신 : 나는 최대 절전 모드 매핑을위한 주석이 아닌 xml을 사용하고 있습니다.

+0

당신은 어떻게이 작업을 수행 할 수 있습니다 어떤 생각을 가지고 있습니까? – Vitaly

+0

나는 직접적인 배를 만들려고 노력했지만 정확한 질문을하는 법을 알아 내지 못해서 내가 여기서 물었습니다. –

+0

나는이 코드를 http://www.dzone.com/tutorials/java/hibernate/hibernate-example/hibernate-mapping-many-to-many-1.html 해봐야한다고 생각하고 코드 (매핑, 액세스 , 등) 작동하지 않는 경우. – Vitaly

답변

0

기준 API를 사용할 수 있습니다. 당신은 실제로 어떤 관계도 필요로하지 않는다. 당신은 street_id가 필요하고 이미 가지고있다. 이것을 시도 할 수 있습니다.

public void removeStreet(Street street) //this reference is an instance 
{          //of Street entity that you want to remove 
    session.clear(); 
    session.delete(street); 
    session.flush(); 

    StreetPath streetPath = new StreetPath(); //create new instance of StreetPath entity 
    streetPath.setStreetId(street.getId()); //with id of deleted row of Street table 

    session.clear(); 
    session.delete(streetPath); 
    session.flush(); 
} 

도움이 되었기를 바랍니다.

+0

어떻게하면 좋을까요? –

+0

@Sobia 예를 들어 보았습니다. 먼저 세션을 만들어야합니다. 이미 세션이 있어야합니다. BTW에서는이 프로세스에 Path 엔터티를 사용할 필요가 없습니다. –

+0

이 방법은 내가 이미 알고있는 것을 언급했다. 그러나 나는 내 쿼리에 올린 것과 정확히 일치하길 원한다. "레코드가 스트리트에서 삭제되면 스트리트 패스의 레코드도 '자동으로'삭제되고 경로에 레코드됩니다. 그대로 유지해야합니다. "... 이렇게하려면 StreetPath를 별도로 쿼리 할 필요가 없습니다. –

0

이 튜토리얼을 사용할 수 있습니다 Hibernate mapping

+0

이것은 실제로 대답이 아닙니다. – Vitaly

+0

Street에서 레코드가 삭제되면 Street-path의 레코드도 삭제되며 XML에서'cascade' 속성을 사용해야합니다 – navand

+0

정말 그렇게 생각합니까? – Vitaly