Closed as not planned
Description
vr025 opened DATACMNS-1656 and commented
We are using Projection to select just single Column that is String Array (String[]) and it is falling with Index out of bound exception.
Here is my table:
create table IF NOT EXISTS ORGANIZATION (
uuid uuid not NULL PRIMARY KEY,
name varchar(127) not NULL,
appliance_tags varchar(255)[]
constraint name_key unique (name)
);
Here is my original entity mapping:
@Entity
@TypeDefs(
{ @TypeDef( name = "string-array", typeClass = StringArrayType.class ), @TypeDef( name = "pgsql_enum", typeClass = PostgreSQLEnumType.class) }
)
@Table(name = "organization")
@XmlRootElement(name = "organization")
@JsonInclude(Include.NON_EMPTY)
public class Organization
@Column(name = "name")
private String name;
@Id
@Column(name = "uuid")
private UUID uuid;
@Type( type = "string-array" )
@Column(name = "appliance_tags")
private String [] applianceTags;
//getters and setters for the above fields
Here is Projection Interface:
@Projection(name="appliacneTags", types = \{Organization.class})
public interface OrgTag
{ public String[] getApplianceTags(); }
Repository Query:
@Query(value = "select org.applianceTags from Organization as org")
public List<OrgTag> findAllTags();
Error Logs :
java.lang.IndexOutOfBoundsException: Index 1 out of bounds for length 1
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248)
at java.base/java.util.Objects.checkIndex(Objects.java:372)
at java.base/java.util.ArrayList.get(ArrayList.java:458)
at org.springframework.data.repository.query.ResultProcessor$ProjectingConverter.toMap(ResultProcessor.java:310)
at org.springframework.data.repository.query.ResultProcessor$ProjectingConverter.getProjectionTarget(ResultProcessor.java:298)
at org.springframework.data.repository.query.ResultProcessor$ProjectingConverter.convert(ResultProcessor.java:285)
at org.springframework.data.repository.query.ResultProcessor$ChainingConverter$1.convert(ResultProcessor.java:210)
at org.springframework.data.repository.query.ResultProcessor$ChainingConverter.convert(ResultProcessor.java:221)
at org.springframework.data.repository.query.ResultProcessor.processResult(ResultProcessor.java:152)
at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:133)
at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:118)
Affects: 2.2.4 (Moore SR4)