Java 使用复合PrimaryKey请求多个关系时的奇怪行为
我试图在DocumentModels之间创建一个多个关系,并在关系中添加一个附加信息(dosIndex) 我可以在这两个表中插入数据,但当我尝试使用entityManager请求数据时,我得到了一些奇怪的结果:Java 使用复合PrimaryKey请求多个关系时的奇怪行为,java,hibernate,hibernate-mapping,composite-key,Java,Hibernate,Hibernate Mapping,Composite Key,我试图在DocumentModels之间创建一个多个关系,并在关系中添加一个附加信息(dosIndex) 我可以在这两个表中插入数据,但当我尝试使用entityManager请求数据时,我得到了一些奇怪的结果: Query query = entityManager.createQuery("SELECT dos.TDocumentModelsDmoSource FROM TDocumentModelsDmo AS dmo, TjDocumentSourcesDos as dos WHERE
Query query = entityManager.createQuery("SELECT dos.TDocumentModelsDmoSource FROM TDocumentModelsDmo AS dmo, TjDocumentSourcesDos as dos WHERE dmo.dmoId = :modelId AND dos.TDocumentModelsDmoParent = dmo");
query.setParameter("modelId", someData);
ArrayList<TjDocumentSourcesDos> dosList = (ArrayList<TjDocumentSourcesDos>) query.getResultList();
这防止了我在where条件下使用源代码
模型时执行更复杂的请求
我尝试在两个JoinColumn注释中添加一个referencedColumnName=“DMO\u ID”
,但仍然得到相同的错误
Query query = entityManager.createQuery("SELECT dos.TDocumentModelsDmoSource FROM TDocumentModelsDmo AS dmo, TjDocumentSourcesDos as dos WHERE dmo.dmoId = :modelId AND dos.TDocumentModelsDmoParent = dmo");
query.setParameter("modelId", someData);
ArrayList<TjDocumentSourcesDos> dosList = (ArrayList<TjDocumentSourcesDos>) query.getResultList();
Query query = entityManager.createQuery("SELECT sources FROM TDocumentModelsDmo AS dmo, TjDocumentSourcesDos as dos, dos.TDocumentModelsDmoSource AS sources WHERE dmo.dmoId = :modelId AND dos.TDocumentModelsDmoParent = dmo");
query.setParameter("modelId", someData);
ArrayList<TjDocumentSourcesDos> dosList = (ArrayList<TjDocumentSourcesDos>) query.getResultList();