我有 3 个表 user_、userTracker、userTrackerPath
user_ 有 userId 作为 Pk。这是 userTracker 中的 Fk userTracker 有 UserTrackerId 作为 pk 这是 userTrackerPath 中的 Fk 和 userTrackerPath 有 userTrackerPathId 作为 Pk。
user_tables 有字段 firstName、LastName、loginIp、lastLoginIp userTracker 有字段 remoteAddr、remoteHost userTrackerPath 有字段 path_、pathDate
所有这些都是我想要的文件。
我已经编写了一个 sql 查询,它对我来说运行成功,但我想要使用 Dynamic query 的结果。
这是我的 sql 查询。
select concat(U.firstName," ",U.lastName) as FullName,U.loginIp,U.lastLoginIp,UT.remoteAddr,substring(UT.modifiedDate,1,10) as Date,UTP.path_ from demo.User_ U, demo.UserTracker UT, demo.UserTrackerPath UTP where ((U.userId=UT.userId) and (UT.userTrackerId=UTP.userTrackerId));
我写了带有预测的动态查询,我很困惑我将如何加入它们。
//Dynamic Query For User Class
DynamicQuery dynamicQuery_user = DynamicQueryFactoryUtil.forClass(User.class,PortalClassLoaderUtil.getClassLoader())
.setProjection(ProjectionFactoryUtil.property("userId"))
.setProjection(ProjectionFactoryUtil.property("firstName"))
.setProjection(ProjectionFactoryUtil.property("lastName"))
.setProjection(ProjectionFactoryUtil.property("loginIp"))
.setProjection(ProjectionFactoryUtil.property("lastLoginIp"));
//Dynamic Query For User and UserTracker Class
DynamicQuery dynamicQuery_userTracker = DynamicQueryFactoryUtil.forClass(UserTracker.class,PortalClassLoaderUtil.getClassLoader())
.setProjection(ProjectionFactoryUtil.property("modifiedDate"))
.setProjection(ProjectionFactoryUtil.property("remoteAddr"));
//Dynamic Query for UserTracker and UserTrackerPath
DynamicQuery dynamicQuery_userTrackerPath = DynamicQueryFactoryUtil.forClass(UserTrackerPath.class,PortalClassLoaderUtil.getClassLoader())
.setProjection(ProjectionFactoryUtil.property("path_"))
.setProjection(ProjectionFactoryUtil.property("pathDate"));
我也试过了。。
dynamicQuery_userTracker.add(PropertyFactoryUtil.forName("userId").in(dynamicQuery_user));
dynamicQuery_userTrackerPath.add(PropertyFactoryUtil.forName("userTrackerId").in(dynamicQuery_userTracker));
我知道我的方法不正确。任何意见或建议。
谢谢。