私は習熟していて、ナッツとbolts.iを学習しようとしましたが、目的地テーブルに一意のキーとしてUIDを持っています。私は、ユーザがdestinationidに基づいて目的地を取得することができる方法を提供する はまた、私は)(HQLを使用してオブジェクトを取得中に問題が発生しました。
Session session=getSessionFactory().getCurrentSession();
Destination destination=null;
String queryString="from Destination destination "+
"where destination.destinationID = :destinationid";
Query query= session.createQuery(queryString).setParameter("destinationid", destinationId, Hibernate.STRING);
@SuppressWarnings("unchecked")
List<Destination> list=qu
ery.list以下のようHQLを使用しようとしました。
私の先のクラスはすべて、遅延ロードされDesttinationクラス内からrefredされているwhcih周り9-10クラスがある怠惰な負荷として定義されているすべてのそれらのコレクションなど、多くの他のサブクラス
<set name="roadTransport" table="ROADTRANSPORT" inverse="true" lazy="true" cascade="save-update">
のrefrenceを持っています。
私は宛先xmlをインポートしています。このxmlは第三者システムによって提供されていますので、UUIDを関連付けることはできません。また、インポートを更新モードで行うのか、新しいdestination.soのdestinationidを行うのかを決定する必要があります。宛先が既にDBに入っているかどうかを確認するための唯一の方法です。
私の問題は、新たな目的地のために上記のHQLクエリが細かいと新しい宛先がDBにではなく、既存の期待通りのが動作していないようだと、クエリが絞首刑状態で であるように思わために輸入されている作業しているされて Hibernate:
/*
from
Destination destination
where
destination.destinationID = :destinationid */ select
destinatio0_.UUID as UUID0_,
destinatio0_.DESTINATIONID as DESTINAT2_0_,
destinatio0_.NAME as NAME0_,
destinatio0_.SHORTDESCRIPTION as SHORTDES4_0_,
destinatio0_.LONGDESCRIPTION as LONGDESC5_0_,
destinatio0_.IMAGE as IMAGE0_,
destinatio0_.GALLERYPATH as GALLERYP7_0_,
destinatio0_.RATING as RATING0_,
destinatio0_.LASTMODIFIED as LASTMODI9_0_,
destinatio0_.CREATIONDATE as CREATIO10_0_,
destinatio0_.STATEID as STATEID0_,
destinatio0_.TYPECODE as TYPECODE0_,
destinatio0_.COUNTRYCODE as COUNTRY13_0_,
destinatio0_.POPULARITY as POPULARITY0_
from
travellingrants.DESTINATION destinatio0_
where
destinatio0_.DESTINATIONID=?
Hibernate:
/* load com.raisonne.tr.model.destination.destinationattributes.Culture */ select
culture0_.UUID as UUID4_2_,
culture0_.SHORTDESCRIPTION as SHORTDES2_4_2_,
culture0_.LONGDESCRIPTION as LONGDESC3_4_2_,
culture0_.CREATIONDATE as CREATION4_4_2_,
culture0_.LASTMODIFIED as LASTMODI5_4_2_,
destinatio1_.UUID as UUID0_0_,
destinatio1_.DESTINATIONID as DESTINAT2_0_0_,
destinatio1_.NAME as NAME0_0_,
destinatio1_.SHORTDESCRIPTION as SHORTDES4_0_0_,
destinatio1_.LONGDESCRIPTION as LONGDESC5_0_0_,
destinatio1_.IMAGE as IMAGE0_0_,
destinatio1_.GALLERYPATH as GALLERYP7_0_0_,
destinatio1_.RATING as RATING0_0_,
destinatio1_.LASTMODIFIED as LASTMODI9_0_0_,
destinatio1_.CREATIONDATE as CREATIO10_0_0_,
destinatio1_.STATEID as STATEID0_0_,
destinatio1_.TYPECODE as TYPECODE0_0_,
destinatio1_.COUNTRYCODE as COUNTRY13_0_0_,
destinatio1_.POPULARITY as POPULARITY0_0_,
culture2_.UUID as UUID4_1_,
culture2_.SHORTDESCRIPTION as SHORTDES2_4_1_,
culture2_.LONGDESCRIPTION as LONGDESC3_4_1_,
culture2_.CREATIONDATE as CREATION4_4_1_,
culture2_.LASTMODIFIED as LASTMODI5_4_1_
from
travellingrants.CULTURE culture0_
left outer join
travellingrants.DESTINATION destinatio1_
on culture0_.UUID=destinatio1_.UUID
left outer join
travellingrants.CULTURE culture2_
on destinatio1_.UUID=culture2_.UUID
where
culture0_.UUID=?
私は休止状態では新しいですが、すでに存在する宛先に対してhibernateによって生成されたクエリを見た後、何らかの周期的な再帰に直面しているようですが、これを回避する方法がわからないか、ユニークキー(プライマリキーではない)に基づく既存のエンティティの場合
ありがとうadvance