Merhaba,
bu yazımda sizlere jhipster ile jdl dosyasından ManyToMany ilişkili entity ve bu entity'nin CRUD ekranlarının nasıl oluşturulacağını paylaşacağım.
ilk olarak terminalden jhipster projenizin bulunduğu dizine gidin.
touch komuturyla içinde entity tanımlamalarını yapacağımız many-to-many.jdl adında bir dosya oluşturun.
dosya içeriği aşağıdaki gibi olmalıdır.
entity Car { name String required, color String required, year Integer required }
entity Driver { firstName String required, lastName String required }
relationship ManyToMany { Car{driver} to Driver{car}
}
|
import-jdl komutuyla dosya içindeki entityleri oluşturun.
$ jhipster import-jdl many-to-many.jdl |
Bu komut ile many-to-many.jdl dosyasında tanımlanan iki entity ve bu entitylerle ilişkili tüm dosyalar oluşturulacaktır.
oluşturma işlemi bittikten sonra Car.java(entity) aşağıdaki gibi olacaktır.
@Entity @Table(name = "car") @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class Car implements Serializable {
private static final long serialVersionUID = 1L;
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id;
@NotNull @Column(name = "name", nullable = false) private String name;
@NotNull @Column(name = "color", nullable = false) private String color;
@NotNull @Column(name = "year", nullable = false) private Integer year;
@ManyToMany @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) @JoinTable(name = "car_driver", joinColumns = @JoinColumn(name = "car_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "driver_id", referencedColumnName = "id")) private Set<Driver> drivers = new HashSet<>();
... |
Driver.java(entity) dosyasının içeriği de aşağıdaki şekilde olacaktır.
@Entity @Table(name = "driver") @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class Driver implements Serializable {
private static final long serialVersionUID = 1L;
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id;
@NotNull @Column(name = "first_name", nullable = false) private String firstName;
@NotNull @Column(name = "last_name", nullable = false) private String lastName;
@ManyToMany(mappedBy = "drivers") @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) @JsonIgnore private Set<Car> cars = new HashSet<>();
... |
Yine projede git status ile değişen dosyalara ve yeni oluşan dosyalara bakmanız biraz daha konunun anlaşılmasına yardımcı olabilir
işlem tamamlandıktan sonra projeyi ayağa kaldırarak Car ve Driver oluşturarak mutlaka aşıdaki ekranları inceleyiniz.
http://127.0.0.1:8080/driver
http://127.0.0.1:8080/driver/1/view
http://127.0.0.1:8080/car
http://127.0.0.1:8080/car/1/edit
Hiç yorum yok:
Yorum Gönder