Skip to content

Instantly share code, notes, and snippets.

@mohamed-gara
mohamed-gara / app.component.ts
Created July 1, 2018 10:21
a-single-tick-is-triggered
import { Component, DoCheck } from '@angular/core';
@Component({
selector: 'app',
template: `
<h3>On each button click a single ApplicationRef.tick() is triggered</h3>
<div>Counter: {{ counter }}</div>
<div>
@mohamed-gara
mohamed-gara / app.component.ts
Created July 1, 2018 10:33
two-ticks-are-triggered
import { Component, DoCheck } from '@angular/core';
@Component({
selector: 'app',
template: `
<h3>On each button click two ApplicationRef.tick() are triggred</h3>
<div>
<div>Counter: <input [ngModel]="counter" #counterValue="ngModel"></div>
@mohamed-gara
mohamed-gara / app.component.ts
Last active July 1, 2018 12:42
change-detection-hell-loop
import { Component, DoCheck } from '@angular/core';
@Component({
selector: 'app',
template: `
<h3>Change detection hell loop</h3>
<div>Counter: {{ counter }}</div>
<div>
@mohamed-gara
mohamed-gara / Person.java
Created July 12, 2018 22:55
Basic attribute is not lazy loaded
@Test
public void basicAttributeIsNotLazyLoaded() {
Person person = entityManager.find(Person.class, PERSON_ID);
assertThat(person).hasEagerlyLoaded("comment");
}
@Data(PersonEntityTable.class)
public class BasicAttributeTestCase extends EntityLoadingTestCase {
@Test
public void basicAttributeIsNotLazyLoaded() {
Person person = entityManager.find(Person.class, PERSON_ID);
assertThat(person).hasEagerlyLoaded("comment");
}
}
@mohamed-gara
mohamed-gara / Person.java
Last active July 12, 2018 23:01
Simple Person entity with a comment attribute
@Entity
@Data
public class Person extends core.Person {
@Basic(fetch = LAZY)
@Lob
private String comment;
}
@mohamed-gara
mohamed-gara / Person.java
Created July 13, 2018 05:53
Person with partner relationship
@Entity
@Data
public class Person extends core.Person {
@OneToOne(fetch = LAZY)
private Person wife;
@OneToOne(fetch = LAZY, mappedBy = "wife")
private Person husband;
public Person getPartner() {
@Test
public void inverseSideRelationshipIsNotLazyLoaded() {
Person person = entityManager.find(Person.class, WIFE_ID);
assertThat(person).hasEagerlyLoaded("husband");
}
@mohamed-gara
mohamed-gara / Person.java
Created July 13, 2018 06:04
Person with parents relationship
@Entity
@Data
public class Person extends core.Person {
@ManyToOne(fetch = LAZY)
@NotFound(action = NotFoundAction.IGNORE)
private Person mother;
@ManyToOne(fetch = LAZY)
@NotFound(action = NotFoundAction.EXCEPTION)
private Person father;
@mohamed-gara
mohamed-gara / NotFoundAnnotationTestCase.java
Created July 13, 2018 06:07
Entity is not lazy loaded
@Test
public void entityIsNotLazyLoaded() {
Person person = entityManager.find(Person.class, PERSON_ID);
assertThat(person)
.hasEagerlyLoaded("mother")
.hasLazyLoaded("father");
}