diff --git a/tests/test-java16/src/main/java/org/example/records/UserRole.java b/tests/test-java16/src/main/java/org/example/records/UserRole.java new file mode 100644 index 000000000..682e61f4a --- /dev/null +++ b/tests/test-java16/src/main/java/org/example/records/UserRole.java @@ -0,0 +1,36 @@ +package org.example.records; + +import io.ebean.Model; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.Version; + +@Entity +public class UserRole extends Model { + + @EmbeddedId + final UserRoleId id; + + String note; + + @Version + long version; + + public UserRole(UserRoleId id, String note) { + this.id = id; + this.note = note; + } + + public UserRoleId getId() { + return id; + } + + public String getNote() { + return note; + } + + public long getVersion() { + return version; + } +} diff --git a/tests/test-java16/src/main/java/org/example/records/UserRoleId.java b/tests/test-java16/src/main/java/org/example/records/UserRoleId.java new file mode 100644 index 000000000..a0807de0a --- /dev/null +++ b/tests/test-java16/src/main/java/org/example/records/UserRoleId.java @@ -0,0 +1,7 @@ +package org.example.records; + +import javax.persistence.Embeddable; + +@Embeddable +public record UserRoleId(Integer userId, String roleId) { +} diff --git a/tests/test-java16/src/test/java/org/example/records/UserRoleTest.java b/tests/test-java16/src/test/java/org/example/records/UserRoleTest.java new file mode 100644 index 000000000..1b4231b58 --- /dev/null +++ b/tests/test-java16/src/test/java/org/example/records/UserRoleTest.java @@ -0,0 +1,38 @@ +package org.example.records; + +import org.example.records.query.QUserRole; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +class UserRoleTest { + + final UserRoleId id = new UserRoleId(42, "R7"); + + @Test + void id_equals() { + assertThat(id).isEqualTo(new UserRoleId(42, "R7")); + } + + @Test + void id_notEquals() { + assertThat(id).isNotEqualTo(new UserRoleId(43, "R7")); + assertThat(id).isNotEqualTo(new UserRoleId(42, "R8")); + } + + @Test + void insert_query() { + + var userRole = new UserRole(id, "hello"); + userRole.save(); + + UserRole found = new QUserRole() + .id.eq(new UserRoleId(42, "R7")) + .findOne(); + + UserRoleId id1 = found.getId(); + assertThat(id1).isEqualTo(id); + assertThat(id1.userId()).isEqualTo(42); + assertThat(id1.roleId()).isEqualTo("R7"); + } +}