[ 
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)

Reply via email to