From dab4f5e54d1047666f75fa3d60802aa68e82e76f Mon Sep 17 00:00:00 2001 From: ribeaudc <ribeaudc> Date: Tue, 18 Nov 2008 13:17:42 +0000 Subject: [PATCH] [LMS-634] add: - Experiment attachments are searchable. SVN: 9006 --- .../generic/shared/dto/AttachmentContentPE.java | 5 ++++- .../cisd/openbis/generic/shared/dto/ExperimentPE.java | 1 + .../openbis/generic/shared/dto/SearchableEntity.java | 11 +++++++++-- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/AttachmentContentPE.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/AttachmentContentPE.java index 17d31158da8..575e4bf59a6 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/AttachmentContentPE.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/AttachmentContentPE.java @@ -27,7 +27,10 @@ import javax.persistence.SequenceGenerator; import javax.persistence.Table; import org.hibernate.annotations.Type; +import org.hibernate.search.annotations.Field; import org.hibernate.search.annotations.FieldBridge; +import org.hibernate.search.annotations.Index; +import org.hibernate.search.annotations.Store; import org.hibernate.validator.NotNull; import ch.systemsx.cisd.openbis.generic.shared.GenericSharedConstants; @@ -66,7 +69,7 @@ public class AttachmentContentPE implements Serializable @Column(name = ColumnNames.VALUE_COLUMN, updatable = false) @NotNull(message = ValidationMessages.VALUE_NOT_NULL_MESSAGE) @Type(type = "org.springframework.orm.hibernate3.support.BlobByteArrayType") - @FieldBridge(impl = ByteArrayBridge.class) + @Field(bridge = @FieldBridge(impl = ByteArrayBridge.class), index = Index.TOKENIZED, store = Store.NO) public byte[] getValue() { return value; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExperimentPE.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExperimentPE.java index 164b28855db..3629492b2cd 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExperimentPE.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExperimentPE.java @@ -282,6 +282,7 @@ public class ExperimentPE implements IEntityPropertiesHolder<ExperimentPropertyP } @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "parent") + @IndexedEmbedded @Private public Set<AttachmentPE> getExperimentAttachments() { diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SearchableEntity.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SearchableEntity.java index 98c2440c425..bc2edb97f6e 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SearchableEntity.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SearchableEntity.java @@ -47,6 +47,13 @@ public enum SearchableEntity }, EXPERIMENT("Experiment") { + + private final String[] getAttachmentFields() + { + return new String[] + { "experimentAttachments.attachmentContent.value" }; + } + // // SearchableEntity // @@ -60,8 +67,8 @@ public enum SearchableEntity @Override public final String[] getFields() { - return (String[]) ArrayUtils.addAll(getStandardFields(), getPropertyFields(name() - .toLowerCase())); + return (String[]) ArrayUtils.addAll(ArrayUtils.addAll(getStandardFields(), + getPropertyFields(name().toLowerCase())), getAttachmentFields()); } }, MATERIAL("Material") -- GitLab