2009-10-26 3 views
0

안녕하세요 여러분, 미안합니다. 질문이 너에게 어리 석다면. 나는 3 개의 테이블 통화 (id | name) 언어 (id | name | description) 트랜잭션 (id | amount | languageId | currencyid)을 가진다.하이버 네이트 단방향 one-to-many.i 조금 혼란 스럽습니다

그래서 나는 트랜잭션에 삽입하려고하지만 삽입하지 않도록하고 싶다. 알 수없는 언어 또는 통화 여기

내 매핑 파일은 그것의이 현재 매핑

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
<hibernate-mapping package="com.myproject.model"> 
<class name="Transaction" table="transaction"> 
    <id name="id"> 
    <generator class="native"/> 
    </id> 
    <property column="amount" name="amount" type="String"/> 
    <many-to-one class="CurrencyImpl" column="currency" name="currency"/> 
    <many-to-one class="LanguageImpl" column="language" name="language"/> 
</class> 
</hibernate-mapping> 

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
<hibernate-mapping package="com.myproject.model"> 
    <class name="Currency" table="currency"> 
    <id name="id"> 
    <generator class="native"/> 
    </id> 
    <property column="currency_name" name="name" type="String"/> 
    </class> 
</hibernate-mapping> 


<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
<hibernate-mapping package="com.myproject.model"> 
<class name="Language" table="language"> 
    <id name="id"> 
    <generator class="native"/> 
    </id> 
    <property column="language_name" name="name" type="String"/> 
    <property column="language_description" name="description" type="String"/> 
</class> 
</hibernate-mapping> 

는 경우가하지 않는 것입니다 (이것은 기존의 부모 언어 및 통화가없는 경우 messagetemplate을 삽입하지 않아야 의미) . 어떻게 그것을 달성? 독서에 대한 많은 감사합니다.

+2

실제로 무엇이 잘못되었는지 지정할 수 있습니까? 어떤 오류가 발생하고 있습니까? – Jherico

답변

1

CurrencyImpl 및 LanguageImpl을 (를) 참조하는 경우가 많지만이 클래스는 매핑되지 않고 아마도 (아마도 해당하는) 인터페이스 만 참조됩니다. 먼저 구체적인 클래스 만 생성하고 매핑하여 맵핑 인터페이스에 대해 혼란에 빠지기 전에 작업을 시작하는 것이 좋습니다.

+0

인터페이스는 Hibernate에서 맵핑 될 수 없다 (mapped-superclass에도 불구하고); 나는 OP가 게시하기 전에 코드를 엉망으로 작성했다고 추측하고있다. – ChssPly76

+0

동적 프록시로 작업하는 경우 인터페이스를 매핑 할 수 있다고 생각하지만 최대 절전 모드에서 인터페이스로 작업하는 것이 자동으로 최우선적일 수 있습니다. 따라서 자신을 구체적인 클래스로 제한한다는 사실을 알고 있습니다. – Jherico

관련 문제