NotFoundAction.EXCEPTION no lanzar una excepción

Telmo Marques:

Tengo la siguiente relación:

@Entity
public class SomeEntity {
    //...

    @EmbeddedId
    private SomeEntityIdentity id;

    @OneToOne
    @NotFound(action = NotFoundAction.EXCEPTION) //This is the important bit
    @JoinColumns({
        //...
    })
    private OtherEntity example;

    //...
}

Entonces, yo uso de los datos de Primavera findOne()a agarrar mi entidad por el Id:

SomeEntityIdentity id = new SomeEntityIdentity();
id.setAttribute1(1);
id.setAttribute2(new BigDecimal(123));
return this.someEntityRepository.findOne(id);

El problema es que no hay excepción si OtherEntityno se encuentra, ya que findOne()simplemente devuelve un valor nulo. Incluso si fijo @OneToOne(optional = false)sigo teniendo un valor nulo a partir findOne(), cuando estaba sola excepción de OtherEntityque sea nula.

Creo que una excepción debe ser desechado. ¿Alguien tiene alguna idea?

¡Gracias!


Editar: Identidad y clases Repositorio de abajo.

@Embeddable
public class SomeEntityIdentity implements Serializable {
    private int attribute1;
    private BigDecimal attribute2;

    public void setAttribute1(int attribute1) {
        this.attribute1 = attribute1;
    }

    public void setAttribute2(BigDecimal attribute2) {
        this.attribute2 = attribute2;
    }
}

public interface SomeEntityRepository extends JpaRepository<SomeEntity, SomeEntityIdentity> {
}
Telmo Marques:

Resultó ser una incompatibilidad entre versiones de Hibernate y datos de primavera.

Este proyecto fue usando Hibernate 4.3.1.Finalpara tomar ventaja de la APP 2.1cuenta; pero con spring-data-jpa 1.6.6.RELEASE, que no es compatible con esa versión de hibernación.

Debido a que todo estaba funcionando correctamente (hasta este número) no se dio cuenta de esto al principio. Cuando traté de actualización spring-data-jpaa una hibernación 4.3versión compatible que no podía, porque spring-data-jpalos saltos de Hibernate 3 a 5 Hibernate en 2.0.xversiones. Esto también parece requerir de Java 8, así que fue un no ir por mí.

Terminó la degradación hasta la hibernación 3.6.10.Finaly todo comenzó a trabajar bien.

TL; DR: Siempre comprobar la compatibilidad de versiones entre primavera y otras bibliotecas, incluso si no hay errores obvios.

Sólo quería terminar diciendo que la gestión de versiones de Primavera es un dolor total.


Trabajando configuración dependencia:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>3.6.10.Final</version>
</dependency>

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>3.6.10.Final</version>
</dependency>

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-jpa</artifactId>
    <version>1.6.6.RELEASE</version>
</dependency>

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=219012&siteId=1
Recomendado
Clasificación