Skip to content

@Modifing not supported by vavr integration #26190

Closed
@jbochard

Description

@jbochard

I'm working with spring-boot 2.3.5.RELEASE and vavr 0.10.3 and I have this error when I try to invoke the method disableEnabledCredentials() defined in this way:

public interface ICredentialDAO extends Repository<Credential, String> {

    @Modifying
    @Query("update Credential d set d.enabled = false where d.enabled = true")
    Try<Integer> disableEnabledCredentials();

    Option<Credential> findByEnabled(boolean enabled);

    Try<Credential> save(Credential credential);

}

Error: "Modifying queries can only use void or int/Integer as return type!"; nested exception is java.lang.IllegalArgumentException: Modifying queries can only use void or int/Integer as return type!

I know that vavr is supported by spring-data-jpa because I has using this features in other methods as findByEnabled() or save().

The support by vavr should't include @Modifying allowing return of Try or Try?

My pom includes:

<properties>
    <spring-boot-dependencies.version>2.3.5.RELEASE</spring-boot-dependencies.version>
</properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot-dependencies.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-undertow</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>io.vavr</groupId>
            <artifactId>vavr</artifactId>
            <version>0.10.3</version>
        </dependency>

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions