diff --git a/src/main/java/entity/UserInvite.java b/src/main/java/entity/UserInvite.java
new file mode 100644
index 0000000..b9c1c3b
--- /dev/null
+++ b/src/main/java/entity/UserInvite.java
@@ -0,0 +1,29 @@
+package entity;
+
+import java.io.Serializable;
+
+import javax.persistence.*;
+import com.querydsl.core.annotations.QueryEntity;
+
+@QueryEntity
+@Entity
+@Table(name = "UserInvite")
+@IdClass(UserInviteId.class)
+public class UserInvite implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @Column(name = "user_id")
+    public String userId;
+
+    @Id
+    @Column(name = "inviter_email")
+    public String inviterEmail;
+
+    @Column(name = "inviter_registered")
+    public boolean inviterRegistered;
+
+    @ManyToOne
+    @JoinColumn(name = "user_id", insertable = false, updatable = false)
+    public User user;
+}
diff --git a/src/main/java/entity/UserInviteId.java b/src/main/java/entity/UserInviteId.java
new file mode 100644
index 0000000..adf729a
--- /dev/null
+++ b/src/main/java/entity/UserInviteId.java
@@ -0,0 +1,33 @@
+package entity;
+
+import java.io.Serializable;
+import java.util.Objects;
+
+public class UserInviteId implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    public String userId;
+    public String inviterEmail;
+
+    public UserInviteId() {
+    }
+
+    public UserInviteId(String userId, String inviterEmail) {
+        this.userId = userId;
+        this.inviterEmail = inviterEmail;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        UserInviteId that = (UserInviteId) o;
+        return Objects.equals(userId, that.userId) &&
+               Objects.equals(inviterEmail, that.inviterEmail);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(userId, inviterEmail);
+    }
+}
