我有两个表CatalogueBase和CatalogueCopydetails现在我正在使用Hibernate搜索CatalogueBase表,但我想搜索甚至在CatalogueCopydetails表中。这两个表与@ManyToOne相关(即使用CatalogueBase id作为外键的CatalogueCopydetails),听取CatalogueBase的一个条目,它们将是'n'个编号的目录.Copydetails
CatalogueBase POJO Class
@Indexed
@JsonAutoDetect
@Entity
@Table(name="catalogueBase")
public class CatalogueBase extends BaseObject implements Serializable {
private Long id;
......
@Id
@GeneratedValue
@Column(name="id")
@Field(index = Index.YES, analyze = Analyze.YES, store = Store.YES)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
....
CatalogueCopydetails POJO Class
@JsonAutoDetect
@Entity
@Table(name="cataloguecopydetails")
public class CatalogueCopyDetails extends BaseObject implements Serializable {
private CatalogueBase catalogueBase;
......
@ManyToOne
@JoinColumn(name="cataloguebaseid" , insertable=true, updatable=true,nullable=true)
public CatalogueBase getCatalogueBase() {
return catalogueBase;
}
public void setCatalogueBase(CatalogueBase catalogueBase) {
this.catalogueBase = catalogueBase;
}
......
至少如何在这种情况下使用@IndexedEmbedded(我认为我不能使用@IndexedEmbedded,因为CatalogueBase与OneToOne或OneToMany之类的CatalogueCopyDetails无关,只有CatalogueCopyDetails引用CatalogueBase)
我怎么能这样做??,任何帮助将不胜感激,谢谢。
答案 0 :(得分:0)
最简单的方法当然是使关系双向化。你有什么理由不想这样做吗?您可以做的另一件事是将@Indexed添加到CatalogueCopyDetails并在CatalogueBase上使用@InededEmbedded。然后,您可以使用CatalogueCopyDetails索引编写查询。这是否有效取决于您的用例以及查询结果实际需要的内容。