Skip to content

Latest commit

 

History

History
123 lines (112 loc) · 2.32 KB

File metadata and controls

123 lines (112 loc) · 2.32 KB

Master Detail and Transaction (Example)

Session

  1. Ajax and HTML
  2. Entity
  3. DAO
  4. Service And Transactional

Ajax and HTML

var nasabah = {
	name: 'masyda arrizaqu',
	families: [
		{
			name: "rizky",
			hubungan: "kakak laki - laki"
		},
		{
			name: "cinta",
			hubungan: "adik perempuan"
		}
	]
}

$.ajax({
	url: '/nasabah/save',
	type : 'post',
	data: JSON.stringify(nasabah),
	contentType: 'application/json',
	success: function(data){
		console.log(data);
	},
	dataType: 'json'
	});

Entity

  • Nasabah:
@Entity
@Table(name="NASABAH")
@JsonIdentityInfo(generator=ObjectIdGenerators.
IntSequenceGenerator.class, property="@id")
public class Nasabah {
	@Id
	@GeneratedValue(strategy=GenerationType.SEQUENCE)
	private int id;
	private String name;
	@OneToMany(fetch = FetchType.LAZY, mappedBy="nasabah")
	private List<Family> families;
  • Family:
@Entity
@Table(name="FAMILY")
@JsonIdentityInfo(generator=ObjectIdGenerators.
IntSequenceGenerator.class, property="@id")
public class Family {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE)
private int id;
private String hubungan;
private String name;
@ManyToOne
private Nasabah nasabah;
.........

Dao

  • Nasabah :
public class NasabahDaoImpl implements NasabahDao {
@Autowired
private SessionFactory sessionFactory;

public void save(Nasabah nasabah) {
	// TODO Auto-generated method stub
	Session session = sessionFactory.getCurrentSession();
	session.save(nasabah);
	session.flush();
}
  • Family :
@Repository
public class FamilyDaoImpl implements FamilyDao {
	@Autowired
	private SessionFactory sessionFactory;
	public void save(Family family) {
		// TODO Auto-generated method stub
		Session session = sessionFactory.getCurrentSession();
		session.save(family);
		session.flush();
	}

Service and Transactional

@Service
@Transactional
public class AccountService {

	@Autowired
	private NasabahDao nasabahDao;
	@Autowired
	private FamilyDao familyDao;

	public void saveNasabah(Nasabah nasabah) {
		// TODO Auto-generated method stub
		//masukin data nasabah sebagai data master
		nasabahDao.save(nasabah);
		//masukkn ke family sebagai detail transaksi
		for(Family family : nasabah.getFamilies()){
			family.setNasabah(nasabah);
			familyDao.save(family);
		}
	}

Reference

Contact Email

[email protected]