Spring HATEOAS как получить HAL ?

227
14 июня 2017, 00:59
@RestController("/customers")
public class CustomerController {
    @Autowired
    private CustomerService customerService;
    @RequestMapping(value = getAllCustomers, method = RequestMethod.GET)
    @ResponseBody
    public Collection<CustomerEntity> getAllCustomers() {
        List<CustomerEntity> customerEntities = customerService.readAll();
        for (CustomerEntity customerEntity : customerEntities) {
            setLinks(customerEntity);
        }
        return customerEntities;
    }
    @RequestMapping(value = getCustomer, method = RequestMethod.GET)
    @ResponseBody
    public CustomerEntity getCustomerEntity(@PathVariable(value = "id") Integer id) {
        CustomerEntity customerEntity = customerService.readById(id);
        setLinks(customerEntity);
        return customerEntity;
    }

Данные методы возвращают на клиент ответ с Content-type json , но мне нужен HAL или HAL + JSON

Класс CustomerEntity :

@Entity
@Table(name = "customer")
@JsonIdentityInfo(
        generator = ObjectIdGenerators.PropertyGenerator.class,
        property = "idCustomer",scope = CustomerEntity.class)
@JsonIgnoreProperties(ignoreUnknown = true)
public class CustomerEntity extends ResourceSupport implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id_customer", nullable = false)
    private int idCustomer;
    @Column(name = "first_name", nullable = true, length = 45)
    private String firstName;
    @Column(name = "last_name", nullable = true, length = 45)
    private String lastName;
    @OneToMany(mappedBy = "customer", cascade = CascadeType.ALL)
    @LazyCollection(LazyCollectionOption.FALSE)
    private List<CreditCardEntity> creditCards = new ArrayList<CreditCardEntity>();
    @OneToMany(mappedBy = "customer", cascade = CascadeType.ALL)
    @LazyCollection(LazyCollectionOption.FALSE)
    private List<OrderEntity> orders = new ArrayList<OrderEntity>(0);
    public CustomerEntity(String firstName, String lastName, List<CreditCardEntity> creditCards,
                          List<OrderEntity> orders) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.creditCards = creditCards;
        this.orders = orders;
    }
    public CustomerEntity() {
    }
    public CustomerEntity(String firstName, String lastName, CreditCardEntity creditCardEntity, OrderEntity
            orderEntity) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.creditCards = new ArrayList<CreditCardEntity>();
        this.creditCards.add(creditCardEntity);
        this.orders = new ArrayList<OrderEntity>();
        this.orders.add(orderEntity);
    }
    public int getIdCustomer() {
        return idCustomer;
    }
    public void setIdCustomer(int idCustomer) {
        this.idCustomer = idCustomer;
    }
    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public List<CreditCardEntity> getCreditCards() {
        return creditCards;
    }
    public void setCreditCards(List<CreditCardEntity> creditCards) {
        this.creditCards = creditCards;
    }
    public List<OrderEntity> getOrders() {
        return orders;
    }
    public void setOrders(List<OrderEntity> orders) {
        this.orders = orders;
    }

}
READ ALSO
Проверка на наличие объекта в базе данных

Проверка на наличие объекта в базе данных

Как оптимальнее проверить при сохранении - есть ли уже объект в базе данных? Подойдет ли код:

226
Добавление значений в LinkedHashMap&lt;Integer, ArrayList&gt;

Добавление значений в LinkedHashMap<Integer, ArrayList>

Как добавлять элементы в ArrayList?

298
редактирование non-public классов

редактирование non-public классов

Начал изучать Java и наткнулся на то, что не могу редактировать некоторые классы в Android StudioПытаюсь расковырять некоторые проекты с гитхаба

230
In app purchase: Необходимо войти в аккаунт Google

In app purchase: Необходимо войти в аккаунт Google

Пользуюсь этой либой для in-app purchasing Но есть ошибка, пишет "Необходимо войти в аккаунт Google"Приложения ещё нет в Play Market'e

218