以下に示すエンティティがあります。注釈 @SecondaryTable によってマップされた 2 つのテーブルがあります。2 つのテーブルの PrimaryKey の名前は両方とも「resource_id」です。HQLを実行すると
delete AssetProjectProposalInfoEntity e where e.resourceId=:rid
列のあいまいな定義エラーが発生しました。
import ...
@Entity
@Table(name = "ASSET_PROJECT_INFO", schema = "CORE_WAC")
@SecondaryTable(name="ASSET_PROJECT_PROPOSAL_INFO", schema="CORE_WAC")
public class AssetProjectProposalInfoEntity
{
@Id
@Column(name = "RESOURCE_ID")
@GeneratedValue(generator="UUIdentifier")
@GenericGenerator(name="UUIdentifier", strategy = "uuid")
private String resourceId;
@Column(name = "PROJECT_NAME")
private String projectName;
@Column(table="ASSET_PROJECT_PROPOSAL_INFO", name="PROJECT_TYPE")
private String projectType;
@Column(table="ASSET_PROJECT_PROPOSAL_INFO", name="APPLY_UNIT_ID")
private String applyUnitId;
...
}
コンソール ログは次のとおりです。SQL の where 句が RESOURCE_ID=? であることを示しています。ですが、assetproje0_.RESOURCE_ID=? である必要があります。おもう。どんな体も助けてくれますか? ありがとう:)
Hibernate: insert into HT_ASSET_PROJECT_INFO select assetproje0_.RESOURCE_ID as
RESOURCE_ID from CORE_WAC.ASSET_PROJECT_INFO assetproje0_ left outer join
CORE_WAC.ASSET_PROJECT_PROPOSAL_INFO assetproje0_1_ on
assetproje0_.RESOURCE_ID=assetproje0_1_.RESOURCE_ID where RESOURCE_ID=?
Hibernate: delete from HT_ASSET_PROJECT_INFO