[
https://issues.apache.org/jira/browse/DELTASPIKE-1447?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sven Haag updated DELTASPIKE-1447:
----------------------------------
Description:
The orderBy query referencing a nested property of an embedded type does not
work.
{code:java}
@Entity(name = "foo")
public class FooEntity {
@Id @GeneratedValue
private UUID id;
@Embedded
private final MyEmbedded myEmbedded = new MyEmbedded();
}{code}
{code:java}
@Embeddable
public static class MyEmbedded implements Serializable {
private static final long serialVersionUID = 4295282492309712345L;
@NotNull
@Column(name = "created", nullable = false)
private LocalDateTime createdOn;
@PrePersist
void prePersist() {
createdOn =
ZonedDateTime.now().toInstant().atZone(ZoneId.of("UTC")).toLocalDateTime();
}
}{code}
{code:java}
@Repository(forEntity = FooEntity.class)
public interface FooRepository extends EntityRepository<FooEntity, UUID> {
List<FooEntity> findAllOrderByMyEmbedded_CreatedOnDesc();
}{code}
The created query seems to be correct:
{code:java}
select * from foo order by created desc{code}
Error:
{code:java}
org.apache.deltaspike.data.api.QueryInvocationException: Failed calling
Repository: [
Repository=my.company.FooRepository,
entity=my.company.FooEntity,method=findAllOrderByMyEmbedded_CreatedOnDesc,
exception=class org.apache.deltaspike.data.api.QueryInvocationException,
message=Failed calling Repository: [
Repository=my.company.FooRepository,
entity=my.company.FooEntity,
method=findAllOrderByMyEmbedded_CreatedOnDesc, {code}
was:
The orderBy query referencing a nested property of an embedded type does not
work. It returns the results, but unsorted!
{code:java}
@Entity(name = "foo")
public class FooEntity {
@Id @GeneratedValue
private UUID id;
@Embedded
private final MyEmbedded myEmbedded = new MyEmbedded();
}{code}
{code:java}
@Repository(forEntity = FooEntity.class)
public interface FooRepository extends EntityRepository<FooEntity, UUID> {
List<FooEntity> findAllOrderByMyEmbedded_CreatedOnDesc();
}{code}
> EntityRepository does not support OrderBy for Nested Properties
> ---------------------------------------------------------------
>
> Key: DELTASPIKE-1447
> URL: https://issues.apache.org/jira/browse/DELTASPIKE-1447
> Project: DeltaSpike
> Issue Type: Bug
> Security Level: public(Regular issues)
> Components: Data-Module
> Affects Versions: 1.9.5
> Reporter: Sven Haag
> Priority: Major
> Labels: embedded, nested, orderby
>
> The orderBy query referencing a nested property of an embedded type does not
> work.
>
> {code:java}
> @Entity(name = "foo")
> public class FooEntity {
> @Id @GeneratedValue
> private UUID id;
> @Embedded
> private final MyEmbedded myEmbedded = new MyEmbedded();
> }{code}
>
> {code:java}
> @Embeddable
> public static class MyEmbedded implements Serializable {
> private static final long serialVersionUID = 4295282492309712345L;
> @NotNull
> @Column(name = "created", nullable = false)
> private LocalDateTime createdOn;
> @PrePersist
> void prePersist() {
> createdOn =
> ZonedDateTime.now().toInstant().atZone(ZoneId.of("UTC")).toLocalDateTime();
> }
> }{code}
>
> {code:java}
> @Repository(forEntity = FooEntity.class)
> public interface FooRepository extends EntityRepository<FooEntity, UUID> {
> List<FooEntity> findAllOrderByMyEmbedded_CreatedOnDesc();
> }{code}
> The created query seems to be correct:
> {code:java}
> select * from foo order by created desc{code}
>
>
> Error:
>
> {code:java}
> org.apache.deltaspike.data.api.QueryInvocationException: Failed calling
> Repository: [
> Repository=my.company.FooRepository,
> entity=my.company.FooEntity,method=findAllOrderByMyEmbedded_CreatedOnDesc,
> exception=class org.apache.deltaspike.data.api.QueryInvocationException,
> message=Failed calling Repository: [
> Repository=my.company.FooRepository,
> entity=my.company.FooEntity,
> method=findAllOrderByMyEmbedded_CreatedOnDesc, {code}
>
>
--
This message was sent by Atlassian Jira
(v8.20.1#820001)