Skip to content

Commit d607b09

Browse files
committed
Implement addOrUpdate
1 parent c63d7d2 commit d607b09

File tree

4 files changed

+21
-1
lines changed

4 files changed

+21
-1
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# Version 3.0.0 (2017-11-30)
2+
3+
* [new] Implements automatic translation of business specifications to Morphia queries.
4+
15
# Version 2.0.0 (2017-01-13)
26

37
* [brk] Update to new configuration system.

morphia/src/it/java/org/seedstack/mongodb/morphia/MorphiaRepositoryIT.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,16 @@ public void update() {
5757
assertThat(userRepository.get(200L).get().getName()).isEqualTo("Jane");
5858
}
5959

60+
@Test
61+
public void addOrUpdate() {
62+
userRepository.addOrUpdate(createUser(200L, "Robert", "SMITH"));
63+
assertThat(userRepository.contains(200L)).isTrue();
64+
assertThat(userRepository.get(200L).get().getName()).isEqualTo("Robert");
65+
userRepository.addOrUpdate(createUser(200L, "Jane", "SMITH"));
66+
assertThat(userRepository.contains(200L)).isTrue();
67+
assertThat(userRepository.get(200L).get().getName()).isEqualTo("Jane");
68+
}
69+
6070
@Test(expected = AggregateNotFoundException.class)
6171
public void updateNonExistent() {
6272
userRepository.update(createUser(100L, "Robert", "SMITH"));

morphia/src/main/java/org/seedstack/mongodb/morphia/BaseMorphiaRepository.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,12 @@ public A update(A aggregate) throws AggregateNotFoundException {
134134
return aggregate;
135135
}
136136

137+
@Override
138+
public A addOrUpdate(A aggregate) {
139+
datastore.save(aggregate);
140+
return aggregate;
141+
}
142+
137143
@Override
138144
public void clear() {
139145
datastore.getCollection(getAggregateRootClass()).drop();

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
<packaging>pom</packaging>
2424

2525
<properties>
26-
<seed.version>3.4.0-SNAPSHOT</seed.version>
26+
<seed.version>3.4.0</seed.version>
2727
<mongodb.version>3.0.3</mongodb.version>
2828
<morphia.version>1.3.2</morphia.version>
2929
<business.version>4.0.0-SNAPSHOT</business.version>

0 commit comments

Comments
 (0)