[Visual Paradigm & Hibernate] Visual Paradigm으로 POJO 생성시 모델만 출력 되었을 때 ID 칼럼 추가하는 방법
프로그램 자료/Java & Spring 2019. 3. 29. 10:58맵핑 테이블에 Tpo_policy 라는 객체를 맵핑 하였더니 아래의 #1 블록과 같이 모델을 만들어주어서 잘 쓰고 있었다.
그런데 rest api 를 만들어야 하는 상황에서 Tpo_policy의 이름을 출력해야 했고,
그럼 @JsonBackReference 를 쓰면 모두 출력 되려나? 했는데 막상 해보니 안되는 것 같더라.
일단 @Formula 를 사용하기로 해서 policy 객체를 할당했더니 ID가 아니라면서 맵핑이 잘 되지 않았는데
그래서 #2 블록처럼 policyId를 만들어주었다.
그리고 #3 처럼 하니 잘 동작하더라.
// #1
@JsonIgnore
@ManyToOne(targetEntity=Tpo_policy.class, fetch=FetchType.LAZY)
@org.hibernate.annotations.Cascade({org.hibernate.annotations.CascadeType.LOCK})
@JoinColumns({ @JoinColumn(name="PolicyId", referencedColumnName="Id", nullable=false) })
private Tpo_policy policy;
// #2
@Column(columnDefinition = "BINARY(16)", name = "PolicyId", nullable = false, insertable = false, updatable = false)
@GeneratedValue(generator="TPO_POLICY_USER_MAP_POLICYID_GENERATOR")
@org.hibernate.annotations.GenericGenerator(name="TPO_POLICY_USER_MAP_POLICYID_GENERATOR"
, strategy="foreign", parameters=@org.hibernate.annotations.Parameter(name="property", value="policy"))
private byte[] policyId;
// #3
@Formula("(select p.name from Tpo_policy as p where p.id = policyId)")
private String policyName;