Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- data
- 함수
- 자바
- mariaDB
- Linux
- centos
- Web
- DeepLearning
- Github
- javascript
- db
- interface
- LIST
- Deep
- Spring
- git
- java
- Python
- error
- learning
- mysql
- SSH
- Numpy
- Server
- 인공지능
- Analysis
- ai
- Pattern
- framework
- Security
Archives
- Today
- Total
PostIT
[JPA/Hibernate] @Embeddable, @Embeddaded 예제 소스 본문
10.11.2017
- Author : SeolHun
- IDE : IntelliJ
- Should know these annotations.
- @Embeddable
- @Embeddaded
- @Access
- 설명은 추후에
import hi.cord.com.user.main.user.domain.user.User;
import lombok.Data;
import org.springframework.data.annotation.CreatedBy;
import javax.persistence.*;
/**
* <h2>The type Common domain For Entity.</h2>
* <p>
* AccessType is so important to access from Embedded Class
* </p>
*
* @Field : CREATED_NICKNAME
* @Property : nickname
*/
@Data
@Access(AccessType.PROPERTY)
@Embeddable
public class CreatedByEntity {
@CreatedBy
@Column(name = "CREATED_NICKNAME", length = 60)
private String nickname;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CREATED_BY", foreignKey = @ForeignKey(name = "USER_ID"))
private User user;
}
mport hi.cord.com.user.main.user.domain.user.User;
import lombok.Data;
import org.springframework.data.annotation.CreatedBy;
import javax.persistence.*;
/**
* <h2>The type Common domain For Entity.</h2>
* <p>
* AccessType is so important to access from Embedded Class
* </p>
*
* @Field : CREATED_NICKNAME
* @Property : nickname
*/
@Data
@Access(AccessType.PROPERTY)
@Embeddable
public class CreatedByEntity {
@CreatedBy
@Column(name = "CREATED_NICKNAME", length = 60)
private String nickname;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CREATED_BY", foreignKey = @ForeignKey(name = "USER_ID"))
private User user;
}
import hi.cord.com.user.common.domain.CreatedByEntity;
import hi.cord.com.user.common.domain.ModifiedByEntity;
import hi.cord.com.user.common.domain.entity.BaseEntity;
import hi.cord.com.user.common.domain.entity.CommonAddress;
import hi.cord.com.user.common.domain.enumtypes.CommonState;
import hi.cord.com.user.main.price.domain.history.PaidHistory;
import hi.cord.com.user.main.user.domain.profile.UserProfile;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.data.annotation.CreatedBy;
import org.springframework.data.annotation.LastModifiedBy;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.io.Serializable;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
* The type User.
*/
@Entity(name = "TB_USER")
@EqualsAndHashCode(callSuper = false)
@ToString(callSuper = true)
@Getter
@Setter
public class User extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="USER_ID")
private long id;
@NotNull
@Column(name = "NICKNAME", length = 60, unique = true, nullable = false)
private String nickname;
// User, about Account state
@Column(name = "STATE", length = 20)
private CommonState state;
// User, Boolean account is NON_EXPIRED or not.
@Column(name = "IS_ACCOUNT_NON_EXPIRED", length = 1)
private boolean isAccountNonExpired;
// User, Boolean account is NON_EXPIRED or not.
@Column(name = "IS_ACCOUNT_NON_LOCKED", length = 1)
private boolean isAccountNonLocked;
// User, Boolean account is CREDENTIALS_NON_EXPIRED or not.
@Column(name = "IS_CREDENTIALS_NONEXPIRED", length = 1)
private boolean isCredentialsNonExpired;
// User, Boolean account is NON_LOCKED or not.
@Column(name = "IS_ENABLED", length = 1)
private boolean isEnabled;
@CreatedBy
@AssociationOverrides({
@AssociationOverride(name = "user", joinColumns = @JoinColumn(name = "CREATED_BY"))
})
@AttributeOverrides({
@AttributeOverride(name = "user", column = @Column(name = "CREATED_BY")),
@AttributeOverride(name = "nickname", column = @Column(name = "CREATED_NICKNAME", length = 60))
})
@Embedded
private CreatedByEntity createdByEntity;
@LastModifiedBy
@AssociationOverrides({
@AssociationOverride(name = "user", joinColumns = @JoinColumn(name = "LAST_MODIFIED_BY"))
})
@AttributeOverrides({
@AttributeOverride(name = "user", column = @Column(name = "LAST_MODIFIED_BY")),
@AttributeOverride(name = "nickname", column = @Column(name = "LAST_MODIFIED_NICKNAME", length = 60))
})
@Embedded
private ModifiedByEntity modifiedByEntity;
'Spring > JPA(Hibernate)' 카테고리의 다른 글
[Java/JPA/Hibernate] JPA CascadeType 종류 (0) | 2017.03.14 |
---|---|
[JPA/Hibernate] Entity Mapping 관련 Annotation에 대한 정보 (0) | 2017.01.05 |
[spring/hibernate]Entity 선언시에 Column으로 쓰지않는 변수에 대한 선언. @Transient (0) | 2016.11.07 |
Comments