[
https://issues.apache.org/jira/browse/DELTASPIKE-1407?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Syed Shah updated DELTASPIKE-1407:
----------------------------------
Description:
I have the following code:
{code:java}
@Repository(forEntity = GuildData.class)
public interface GuildRepository extends EntityRepository<GuildData, Long> {
/**
* @param id The ID of the guild.
* @param prefix What to set he guild's prefix to.
* @return The number of rows that changed, this should always be 1.
*/
@Modifying
@Query("UPDATE GuildData AS g SET g.prefix = ?1 WHERE g.id = ?2")
int updatePrefix(final String prefix, final long id);
}
{code}
However, when I do the following, the database updates successfully, however
when the application next does a query for the entity it still returns the old
value until the application has restarted?
{code:java}
private void setPrefix(long guildId, String prefix) {
int result = guildRepo.updatePrefix(prefix, guildId);
logger.debug("Prefix command performed and updated {} prefix in the
database.", result);
}
{code}
This however, gets the desired behavior:
{code:java}
private void setPrefix(long guildId, String prefix) {
GuildData data = guildRepo.findBy(guildId);
if (data == null)
data = new GuildData(guildId);
data.setPrefix(prefix);
guildRepo.save(data);
}
{code}
was:
I have the following code:
```java
@Repository(forEntity = GuildData.class)
public interface GuildRepository extends EntityRepository<GuildData, Long> {
/**
* @param id The ID of the guild.
* @param prefix What to set he guild's prefix to.
* @return The number of rows that changed, this should always be 1.
*/
@Modifying
@Query("UPDATE GuildData AS g SET g.prefix = ?1 WHERE g.id = ?2")
int updatePrefix(final String prefix, final long id);
}
```
However, when I do the following, the database updates successfully, however
when the application next does a query for the entity it still returns the old
value until the application has restarted?
```java
private void setPrefix(long guildId, String prefix) {
int result = guildRepo.updatePrefix(prefix, guildId);
logger.debug("Prefix command performed and updated {} prefix in the
database.", result);
}
```
This however, gets the desired behavior:
```java
private void setPrefix(long guildId, String prefix) {
GuildData data = guildRepo.findBy(guildId);
if (data == null)
data = new GuildData(guildId);
data.setPrefix(prefix);
guildRepo.save(data);
}
```
> DeltaSpike Data @Modifying Updates Database, but Selects Retain Old Value
> -------------------------------------------------------------------------
>
> Key: DELTASPIKE-1407
> URL: https://issues.apache.org/jira/browse/DELTASPIKE-1407
> Project: DeltaSpike
> Issue Type: Bug
> Security Level: public(Regular issues)
> Components: Data-Module
> Affects Versions: 1.9.3
> Reporter: Syed Shah
> Priority: Major
>
> I have the following code:
> {code:java}
> @Repository(forEntity = GuildData.class)
> public interface GuildRepository extends EntityRepository<GuildData, Long> {
> /**
> * @param id The ID of the guild.
> * @param prefix What to set he guild's prefix to.
> * @return The number of rows that changed, this should always be 1.
> */
> @Modifying
> @Query("UPDATE GuildData AS g SET g.prefix = ?1 WHERE g.id = ?2")
> int updatePrefix(final String prefix, final long id);
> }
> {code}
> However, when I do the following, the database updates successfully, however
> when the application next does a query for the entity it still returns the
> old value until the application has restarted?
> {code:java}
> private void setPrefix(long guildId, String prefix) {
> int result = guildRepo.updatePrefix(prefix, guildId);
> logger.debug("Prefix command performed and updated {} prefix in the
> database.", result);
> }
> {code}
> This however, gets the desired behavior:
> {code:java}
> private void setPrefix(long guildId, String prefix) {
> GuildData data = guildRepo.findBy(guildId);
> if (data == null)
> data = new GuildData(guildId);
> data.setPrefix(prefix);
> guildRepo.save(data);
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)