Java 展示你关注Spring JPA的人的广告
我有一个用户,一个广告,和一个表格,显示谁跟随谁 我需要做的是,我需要实现一个按钮,点击(并登录)regsiters 根据下表,你需要能够显示你所关注的人的广告(目前只有一个所有广告的视图,现在我需要制作一个只显示一个的视图) 已由我跟踪的用户发布的) 你知道我该怎么做吗 肾上腺素的:Java 展示你关注Spring JPA的人的广告,java,spring,jpa,Java,Spring,Jpa,我有一个用户,一个广告,和一个表格,显示谁跟随谁 我需要做的是,我需要实现一个按钮,点击(并登录)regsiters 根据下表,你需要能够显示你所关注的人的广告(目前只有一个所有广告的视图,现在我需要制作一个只显示一个的视图) 已由我跟踪的用户发布的) 你知道我该怎么做吗 肾上腺素的: @Repository public interface AdRepository extends JpaRepository<DefaultAdEntity, Integer> { Sli
@Repository
public interface AdRepository extends JpaRepository<DefaultAdEntity, Integer> {
Slice<DefaultAdEntity> findAllByOrderByDateDesc(Pageable pageRequest);
Optional<DefaultAdEntity> findByTitle(String title);
}
@Repository
public interface UserRepository extends JpaRepository<DefaultUserEntity, Integer> {
Optional<DefaultUserEntity> findByLogin(String email);
}
DefautUserEntity:
@Entity(name = "DefaultUserEntity")
@Table(name = "user")
public class DefaultUserEntity implements UserEntity {
/**
* Serialization ID.
*/
private static final long serialVersionUID = 1010299073916686941L;
/**
* User's ID.
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false, unique = true)
private Integer id = -1;
/**
* Login del usuario (email)
*/
@Column(name = "login", nullable = false, unique = true)
private String login;
/**
* Login del usuario (email)
*/
@Column(name = "password", nullable = false, unique = false)
private String password;
/**
* Nombre Usuario
*/
@Column(name = "name", nullable = false, unique = false)
private String name;
/**
* Primer apellido
*/
@Column(name = "firstName", nullable = false, unique = false)
private String firstName;
/**
* Segundo apellido
*/
@Column(name = "lastName", nullable = false, unique = false)
private String lastName;
/**
* Ciudad
*/
@Column(name = "city", nullable = false, unique = false)
private String city;
public DefaultUserEntity() {
super();
}
public interface UserService {
public DefaultUserEntity login(String email, String password)
throws UnregisterEmailException, IncorrectLoginException;
public Iterable<DefaultUserEntity> getAllEntities();
public Iterable<DefaultUserEntity> getEntities(final Pageable page);
public UserEntity add(final DefaultUserEntity entity) throws AlreadyRegistedLoginException;
public UserEntity findById(final Integer identifier);
public void remove(final DefaultUserEntity entity);
}
@Autowired
public DefaultAdService(final AdRepository repository, UserRepository repository_, PictureRepository repository3) {
super();
userRepository = checkNotNull(repository_, "Received a null pointer as repository");
adRepository = checkNotNull(repository, "Received a null pointer as repository");
pictureRepository = checkNotNull(repository3, "Received a null pointer as repository");
}
@Override
public AdEntity add(DefaultAdEntity entity, Integer userId) throws DontLoggedException, RepeatedTitleException {
if (userId == null) {
throw new DontLoggedException();
}
Optional<DefaultAdEntity> adEntityRepository = adRepository.findByTitle(entity.getTitle());
if (!adEntityRepository.isEmpty()) {
throw new RepeatedTitleException(entity.getTitle());
}
DefaultUserEntity user = userRepository.findById(userId).get();
entity.setUser(user);
entity.setDate(LocalDateTime.now());
DefaultAdEntity adEntity = adRepository.save(entity);
return adEntity;
}
@Override
public final DefaultAdEntity findById(final Integer identifier) {
final DefaultAdEntity adEntity;
checkNotNull(identifier, "Received a null pointer as identifier");
if (adRepository.existsById(identifier)) {
adEntity = adRepository.getOne(identifier);
} else {
adEntity = new DefaultAdEntity();
}
return adEntity;
}
@Override
public Block<AdImageObject> getAdList(int page, int size) {
AdImageObject adImage;
Slice<DefaultAdEntity> ads = adRepository.findAllByOrderByDateDesc(PageRequest.of(page, size));
List<DefaultPictureEntity> pictures = pictureRepository.findAll();
List<AdImageObject> ListAdImage = new ArrayList<AdImageObject>();
for (DefaultAdEntity a : ads) {
List<DefaultPictureEntity> picts = new ArrayList<DefaultPictureEntity>();
for (DefaultPictureEntity pict : pictures) {
// Buscamos en la lista de imagenes si el anuncio tiene imagen
if (pict.getAd().getId() == a.getId()) {
// Asignamos la imagen (si la tiene)
picts.add(pict);
}
}
adImage = new AdImageObject(picts, a);
ListAdImage.add(adImage);
}
return new Block<>(ListAdImage, ads.hasNext());
};
}
@Entity(name = "DefaultAdEntity")
@Table(name = "ad")
public class DefaultAdEntity implements AdEntity {
/**
*
*/
private static final long serialVersionUID = -5167113468442767604L;
/*
* Ad's ID.
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false, unique = true)
private Integer id = -1;
@Column(name = "title", nullable = false, unique = false)
private String title;
@Column(name = "description", nullable = false, unique = false)
private String description;
@Column(name = "date", nullable = false, unique = false)
private LocalDateTime date;
@Column(name = "price", nullable = true, unique = false)
private int price;
@ManyToOne(optional = false, fetch = FetchType.LAZY, targetEntity = DefaultUserEntity.class)
@JoinColumn(name = "UserId")
private UserEntity user;
public DefaultAdEntity() {
super();
}
... getters, setters.....
@Entity(name = "DefaultUserEntity")
@Table(name = "user")
public class DefaultUserEntity implements UserEntity {
/**
* Serialization ID.
*/
private static final long serialVersionUID = 1010299073916686941L;
/**
* User's ID.
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false, unique = true)
private Integer id = -1;
/**
* Login del usuario (email)
*/
@Column(name = "login", nullable = false, unique = true)
private String login;
/**
* Login del usuario (email)
*/
@Column(name = "password", nullable = false, unique = false)
private String password;
/**
* Nombre Usuario
*/
@Column(name = "name", nullable = false, unique = false)
private String name;
/**
* Primer apellido
*/
@Column(name = "firstName", nullable = false, unique = false)
private String firstName;
/**
* Segundo apellido
*/
@Column(name = "lastName", nullable = false, unique = false)
private String lastName;
/**
* Ciudad
*/
@Column(name = "city", nullable = false, unique = false)
private String city;
public DefaultUserEntity() {
super();
}