Java 两个表上的Liferay动态子查询

Java 两个表上的Liferay动态子查询,java,sql,subquery,liferay,dynamicquery,Java,Sql,Subquery,Liferay,Dynamicquery,我需要通过动态子查询从两个不同的表访问两个属性 create table DLFileVersion ( uuid_ VARCHAR(75) null, fileVersionId LONG not null primary key, groupId LONG, companyId LONG, userId LONG, userName VARCHAR(75) null, createDate DATE null, etc... e

我需要通过动态子查询从两个不同的表访问两个属性

create table DLFileVersion (
    uuid_ VARCHAR(75) null,
    fileVersionId LONG not null primary key,
    groupId LONG,
    companyId LONG,
    userId LONG,
    userName VARCHAR(75) null,
    createDate DATE null,
    etc... etc... etc...
    status INTEGER,
    statusByUserId LONG,
    statusByUserName VARCHAR(75) null,
    statusDate DATE null
);
和其他桌子

create table DLFileEntry (
    uuid_ VARCHAR(75) null,
    fileEntryId LONG not null primary key,
    groupId LONG,
    companyId LONG,
    userId LONG,
    userName VARCHAR(75) null,
    version VARCHAR(75) null,
    size_ LONG,
);
我必须从这两个表中按属性查找文件,问题是,我不知道如何使用DLFileVersion表中的两个属性(状态和用户名)进行动态子查询。。。我需要将这两个属性与整个DLFileEntry表结合起来,使用用户从jsp页面获得的标准执行动态查询。 例如:

SELECT DLFileVersion.userName, DLFileEntry.userName, status, version
FROM DLFileVersion, DLFileEntry
WHERE ....

查看用于联接的自定义SQL:


您能给出一个实际数据和预期结果的示例吗?用户希望找到具有以下属性的文档:lastUpdated=Joe Bloggs uploadedBy=Joe Bloggs status=Approved version=2.0问题是DLFileEntry表不包含属性状态,而属性username表示文档的自动记录(uploadedBy)DLFileVersion中的用户名表示最新更新程序。。。我需要的是用第一个表中的RestrictionsFactoryUtil.eq(“用户名”、“JoeBloggs”)/和第二个表中的RestrictionsFactoryUtil.eq(“用户名”、“JoeBloggs”)/以及RestrictionsFactoryUtil.eq(“状态”、“批准”)和……检查这两个表,并从DLFileEntry获取文档。但是我还不确定子查询是否是解决这个问题的正确方法。您考虑过使用联接而不是子查询吗?我考虑过,但发现dynamicQuery不支持联接,只支持子查询,所以我有点困惑。