Добавил JPA для личных сообщений

This commit is contained in:
Mark Struchkov 2019-07-27 08:06:47 +03:00
parent 346b3029af
commit e771e1ff34
5 changed files with 74 additions and 1 deletions

10
pom.xml
View File

@ -52,6 +52,16 @@
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<version>1.18.8</version> <version>1.18.8</version>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>2.1.3.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
</dependencies> </dependencies>
<developers> <developers>

View File

@ -5,6 +5,8 @@ import lombok.EqualsAndHashCode;
import org.sadtech.social.core.domain.content.attachment.Attachment; import org.sadtech.social.core.domain.content.attachment.Attachment;
import org.sadtech.social.core.utils.Description; import org.sadtech.social.core.utils.Description;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.List; import java.util.List;
/** /**
@ -12,8 +14,10 @@ import java.util.List;
* *
* @author upagge [08/07/2019] * @author upagge [08/07/2019]
*/ */
@EqualsAndHashCode(callSuper = true)
@Data @Data
@Entity
@Table(name = "mail")
@EqualsAndHashCode(callSuper = true)
public class Mail extends Message { public class Mail extends Message {
@Description("Вложения к сообщению") @Description("Вложения к сообщению")

View File

@ -1,8 +1,12 @@
package org.sadtech.social.core.domain.content; package org.sadtech.social.core.domain.content;
import com.sun.istack.internal.NotNull;
import lombok.Data; import lombok.Data;
import org.sadtech.social.core.utils.Description; import org.sadtech.social.core.utils.Description;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**
@ -11,17 +15,22 @@ import java.time.LocalDateTime;
* @author upagge [08/07/2019] * @author upagge [08/07/2019]
*/ */
@Data @Data
@Entity
public abstract class Message { public abstract class Message {
@Id
@GeneratedValue
@Description("Идентификатор сообщения") @Description("Идентификатор сообщения")
private Integer id; private Integer id;
@Description("Тип сообщения") @Description("Тип сообщения")
protected ContentType type; protected ContentType type;
@NotNull
@Description("Дата создания") @Description("Дата создания")
private LocalDateTime createDate; private LocalDateTime createDate;
@NotNull
@Description("Идентификатор пользователя, отправившего сообщение") @Description("Идентификатор пользователя, отправившего сообщение")
private Integer personId; private Integer personId;

View File

@ -0,0 +1,32 @@
package org.sadtech.social.core.repository.jpa;
import org.sadtech.social.core.domain.content.Mail;
import org.sadtech.social.core.repository.ContentRepository;
import org.sadtech.social.core.repository.jpa.impl.MailRepository;
import java.time.LocalDateTime;
import java.util.List;
/**
* TODO: Добавить описание класса.
*
* @author upagge [25/07/2019]
*/
public class MailRepositoryJpa implements ContentRepository<Mail> {
private final MailRepository mailRepository;
public MailRepositoryJpa(MailRepository mailRepository) {
this.mailRepository = mailRepository;
}
@Override
public Integer add(Mail content) {
return mailRepository.saveAndFlush(content).getId();
}
@Override
public List<Mail> findByTime(LocalDateTime timeFrom, LocalDateTime timeTo) {
return mailRepository.findByCreateDateBetween(timeFrom, timeTo);
}
}

View File

@ -0,0 +1,18 @@
package org.sadtech.social.core.repository.jpa.impl;
import org.sadtech.social.core.domain.content.Mail;
import org.springframework.data.jpa.repository.JpaRepository;
import java.time.LocalDateTime;
import java.util.List;
/**
* TODO: Добавить описание интерфейса.
*
* @author upagge [27/07/2019]
*/
public interface MailRepository extends JpaRepository<Mail, Integer> {
List<Mail> findByCreateDateBetween(LocalDateTime from, LocalDateTime to);
}