// Path: src/main/java/com/rizki/mufrizal/spring/oauth2/custom/domain/Buku.java
// @Entity
// @Table(name = "tb_buku")
// public class Buku implements Serializable {
// 
//     @Id
//     @Getter
//     @Setter
//     @GeneratedValue(generator = "uuid2")
//     @GenericGenerator(name = "uuid2", strategy = "uuid2")
//     @Column(name = "id_buku", length = 36)
//     private String idBuku;
// 
//     @Getter
//     @Setter
//     @Column(name = "judul_buku", length = 50, nullable = false)
//     private String judulBuku;
// 
//     @Getter
//     @Setter
//     @Column(name = "nama_pengarang", length = 50, nullable = false)
//     private String namaPengarang;
// 
//     @Getter
//     @Setter
//     @Column(name = "tahun_terbit", nullable = false)
//     private Integer tahunTerbit;
// 
//     @Getter
//     @Setter
//     @Column(name = "penerbit", length = 25, nullable = false)
//     private String penerbit;
// 
//     @Getter
//     @Setter
//     @Column(name = "jumlah_buku", nullable = false)
//     private String jumlahBuku;
// 
//     @Getter
//     @Setter
//     @Column(name = "nomor_rak_buku", length = 15, nullable = false)
//     private String nomorRakBuku;
// 
//     @Getter
//     @Setter
//     @OneToMany(fetch = FetchType.LAZY, mappedBy = "buku")
//     private List<Peminjaman> peminjamans;
// }
// 
// Path: src/main/java/com/rizki/mufrizal/spring/oauth2/custom/repository/BukuRepository.java
// public interface BukuRepository extends PagingAndSortingRepository<Buku, String> {
// 
// }
// 
// Path: src/main/java/com/rizki/mufrizal/spring/oauth2/custom/service/BukuService.java
// public interface BukuService {
// 
//     public void saveBuku(Buku buku);
// 
//     public void updateBuku(Buku buku);
// 
//     public void deleteBuku(String idBuku);
// 
//     public Buku getBuku(String idBuku);
// 
//     public Page<Buku> getBukus(Pageable pageable);
// }


import com.rizki.mufrizal.spring.oauth2.custom.domain.Buku;
import com.rizki.mufrizal.spring.oauth2.custom.repository.BukuRepository;
import com.rizki.mufrizal.spring.oauth2.custom.service.BukuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
package com.rizki.mufrizal.spring.oauth2.custom.service.impl;


/**
 *
 * @Author Rizki Mufrizal <mufrizalrizki@gmail.com>
 * @Web <https://RizkiMufrizal.github.io>
 * @Since Feb 5, 2017
 * @Time 7:25:46 PM
 * @Encoding UTF-8
 * @Project Spring-OAuth2-Custom
 * @Package com.rizki.mufrizal.spring.oauth2.custom.service.impl
 *
 */
@Service
@Transactional(readOnly = true)
// Path: src/main/java/com/rizki/mufrizal/spring/oauth2/custom/domain/Buku.java
// @Entity
// @Table(name = "tb_buku")
// public class Buku implements Serializable {
// 
//     @Id
//     @Getter
//     @Setter
//     @GeneratedValue(generator = "uuid2")
//     @GenericGenerator(name = "uuid2", strategy = "uuid2")
//     @Column(name = "id_buku", length = 36)
//     private String idBuku;
// 
//     @Getter
//     @Setter
//     @Column(name = "judul_buku", length = 50, nullable = false)
//     private String judulBuku;
// 
//     @Getter
//     @Setter
//     @Column(name = "nama_pengarang", length = 50, nullable = false)
//     private String namaPengarang;
// 
//     @Getter
//     @Setter
//     @Column(name = "tahun_terbit", nullable = false)
//     private Integer tahunTerbit;
// 
//     @Getter
//     @Setter
//     @Column(name = "penerbit", length = 25, nullable = false)
//     private String penerbit;
// 
//     @Getter
//     @Setter
//     @Column(name = "jumlah_buku", nullable = false)
//     private String jumlahBuku;
// 
//     @Getter
//     @Setter
//     @Column(name = "nomor_rak_buku", length = 15, nullable = false)
//     private String nomorRakBuku;
// 
//     @Getter
//     @Setter
//     @OneToMany(fetch = FetchType.LAZY, mappedBy = "buku")
//     private List<Peminjaman> peminjamans;
// }
// 
// Path: src/main/java/com/rizki/mufrizal/spring/oauth2/custom/repository/BukuRepository.java
// public interface BukuRepository extends PagingAndSortingRepository<Buku, String> {
// 
// }
// 
// Path: src/main/java/com/rizki/mufrizal/spring/oauth2/custom/service/BukuService.java
// public interface BukuService {
// 
//     public void saveBuku(Buku buku);
// 
//     public void updateBuku(Buku buku);
// 
//     public void deleteBuku(String idBuku);
// 
//     public Buku getBuku(String idBuku);
// 
//     public Page<Buku> getBukus(Pageable pageable);
// }


// Path: src/main/java/com/rizki/mufrizal/spring/oauth2/custom/service/impl/BukuServiceImpl.java
import com.rizki.mufrizal.spring.oauth2.custom.domain.Buku;
import com.rizki.mufrizal.spring.oauth2.custom.repository.BukuRepository;
import com.rizki.mufrizal.spring.oauth2.custom.service.BukuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

package com.rizki.mufrizal.spring.oauth2.custom.service.impl;


/**
 *
 * @Author Rizki Mufrizal <mufrizalrizki@gmail.com>
 * @Web <https://RizkiMufrizal.github.io>
 * @Since Feb 5, 2017
 * @Time 7:25:46 PM
 * @Encoding UTF-8
 * @Project Spring-OAuth2-Custom
 * @Package com.rizki.mufrizal.spring.oauth2.custom.service.impl
 *
 */
@Service
@Transactional(readOnly = true)
public class BukuServiceImpl implements BukuService {