2019/02/20 - [프로그램 자료/Visual Paradigm] - [Visual Paradigm] 하이버네이트용 모델 만들기 generate code for hibernate








맵핑 테이블에 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;




Posted by motolies
,