作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 2 个实体:DocumentEntity(docNumber(主键)、dateOfFill,...)
和 FileEntity(id、标题、大小、...)
。我有一个内连接为 2 的 HQL 查询,它应该在 Oracle DB 上运行:
String queryStr = "SELECT docNumber " +
+ "FROM DocumentEntity d " +
+ "INNER JOIN FileEntity f " +
+ "ON d.docNumber = f.title " +
+ "WHERE d.date > to_date('01.01.2011','dd.mm.yyyy')"
Query query = em.createQuery(query_string);
return query.getResultList();
当我运行代码片段时,我收到异常org.hibernate.hql.ast.QuerySyntaxException:加入的路径预期!
我看过了
但没有解决我的问题。本示例中无法使用建议的路径(至少它会给出错误的路径错误)。最后一个链接的答案是:
Joins can only be used when there is an association between entities.
问题是我无法关联这两个实体。
问题是:我如何加入这两个实体?
更新:我的实体是:
@Entity
@Table(name = "DOCUMENT")
public class DocumentEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "DOC_NUMBER", nullable = false)
private String docNumber;
@Basic(optional = false)
@Column(name = "DATE_OF_FILL")
@Temporal(TemporalType.DATE)
private Date dateOfFill;
...
}
和
@Entity
@Table(name = "FS_FILE")
public class FileEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name = "FS_FILE_SEQ", allocationSize = 1, sequenceName = "FS_FILE_SEQ")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "FS_FILE_SEQ")
@Column(name = "ID", nullable = false)
protected Long id;
@Column(name = "TITLE", nullable = false)
protected String title;
@Column(name = "MIMETYPE", nullable = false)
protected String mimetype;
@Column(name = "FILESIZE", nullable = false)
protected Long filesize;
@Column(name = "FILEPATH", nullable = false)
protected String filepath;
...
}
最佳答案
在这种情况下,您不需要执行联接,因为您使用条件 d.docNumber = f.title
限制结果。只需在 where 子句中添加条件并使用 SQL 查询而不是 JPQL 查询,因为它似乎更符合您的需求。
String sqlString= "SELECT d.docNumber " +
+ "FROM DOCUMENT d, FS_FILE f " +
+ "WHERE d.docNumber = f.title " +
+ "AND d.date > to_date('01.01.2011','dd.mm.yyyy')"
Query query = em.createNativeQuery(sqlString);
return query.getResultList();
关于java - 如何在 Hibernate 中内连接两个独立实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38831335/
我是一名优秀的程序员,十分优秀!