返回列表 上一筆 下一筆

📄 資料內容

/**

 * Copyright (c) 1989-2020 INVENTEC BESTA Co., Ltd.

 * All Rights Reserved.

 */

package com.taiwanlife.teamwalk.common.entity.redeem ;



import java.time.LocalDateTime ;



import jakarta.persistence.*;



import com.fasterxml.jackson.annotation.JsonBackReference;

import org.springframework.data.jpa.domain.support.AuditingEntityListener ;

import org.springframework.format.annotation.DateTimeFormat ;



import com.fasterxml.jackson.annotation.JsonFormat ;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties ;

import com.fasterxml.jackson.annotation.JsonInclude ;

import com.taiwanlife.teamwalk.common.entity.AbstractPrimaryKeyEntity ;

import com.taiwanlife.teamwalk.common.entity.member.MbrMember ;



import lombok.AllArgsConstructor ;

import lombok.Builder ;

import lombok.Data ;

import lombok.EqualsAndHashCode ;

import lombok.NoArgsConstructor ;

import lombok.ToString ;





/**

 * @author Seimo.Zhan

 * @version 1

 *

 * @date 2020/09/21

 */

@Entity

@EntityListeners ( AuditingEntityListener.class )

@JsonIgnoreProperties ( ignoreUnknown = true, value = { "hibernateLazyInitializer", "handler", "fieldHandler" } )

@JsonInclude ( JsonInclude.Include.NON_EMPTY )

@Data

@NoArgsConstructor

@AllArgsConstructor

@EqualsAndHashCode ( callSuper = true )

@ToString ( callSuper = true )

@Builder

public class ReBadgeMember extends AbstractPrimaryKeyEntity

{

	@Enumerated( EnumType.STRING )

	@Column ( columnDefinition = "char(1)" )

	private ReBadgeMember.IsRead isRead ;



	@DateTimeFormat ( pattern = "yyyy-MM-dd HH:mm:ss" )

	@JsonFormat ( pattern = "yyyy/MM/dd HH:mm:ss", timezone = "GMT+8" )

	private LocalDateTime getBadgeAt ;



	@ManyToOne ( targetEntity = MbrMember.class, cascade = { CascadeType.REFRESH, CascadeType.MERGE }, optional = true, fetch = FetchType.LAZY )

	@JoinColumn ( name = "member_id", referencedColumnName = "id", foreignKey = @ForeignKey ( name = "none", value = ConstraintMode.NO_CONSTRAINT ) )

	//@JsonIgnoreProperties ( ignoreUnknown = true, value = { "reBadgeMembers" } )

	@JsonBackReference

	private MbrMember mbrMember ;



	@ManyToOne ( targetEntity = ReBadge.class, cascade = { CascadeType.REFRESH, CascadeType.MERGE }, optional = true, fetch = FetchType.LAZY )

	@JoinColumn ( name = "badge_id", referencedColumnName = "id", foreignKey = @ForeignKey ( name = "none", value = ConstraintMode.NO_CONSTRAINT ) )

	//@JsonIgnoreProperties ( ignoreUnknown = true, value = { "reBadgeMembers" } )

	@JsonBackReference

	private ReBadge reBadge ;



	/**

	 * @author Seimo.Zhan

	 * @version 1

	 *

	 * @date 2020/09/21

	 */

	public enum IsRead

	{



		N ( 'N', "未讀" ),

		Y ( 'Y', "已讀" ) ;



		private final char name ;

		private final String value ;



		/**

		 * Constructor

		 * @param name

		 * @param value

		 */

		private IsRead ( char name, String value )

		{

			this.name = name ;

			this.value = value ;

		}



		/**

		 * @return char

		 */

		public char getName ()

		{

			return name ;

		}



		/**

		 * @return String

		 */

		public String getValue ()

		{

			return value ;

		}



	}

}

🔐 Base64 編碼內容

LyoqCgogKiBDb3B5cmlnaHQgKGMpIDE5ODktMjAyMCBJTlZFTlRFQyBCRVNUQSBDby4sIEx0ZC4KCiAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCgogKi8KCnBhY2thZ2UgY29tLnRhaXdhbmxpZmUudGVhbXdhbGsuY29tbW9uLmVudGl0eS5yZWRlZW0gOwoKCgppbXBvcnQgamF2YS50aW1lLkxvY2FsRGF0ZVRpbWUgOwoKCgppbXBvcnQgamFrYXJ0YS5wZXJzaXN0ZW5jZS4qOwoKCgppbXBvcnQgY29tLmZhc3RlcnhtbC5qYWNrc29uLmFubm90YXRpb24uSnNvbkJhY2tSZWZlcmVuY2U7CgppbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5kYXRhLmpwYS5kb21haW4uc3VwcG9ydC5BdWRpdGluZ0VudGl0eUxpc3RlbmVyIDsKCmltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmZvcm1hdC5hbm5vdGF0aW9uLkRhdGVUaW1lRm9ybWF0IDsKCgoKaW1wb3J0IGNvbS5mYXN0ZXJ4bWwuamFja3Nvbi5hbm5vdGF0aW9uLkpzb25Gb3JtYXQgOwoKaW1wb3J0IGNvbS5mYXN0ZXJ4bWwuamFja3Nvbi5hbm5vdGF0aW9uLkpzb25JZ25vcmVQcm9wZXJ0aWVzIDsKCmltcG9ydCBjb20uZmFzdGVyeG1sLmphY2tzb24uYW5ub3RhdGlvbi5Kc29uSW5jbHVkZSA7CgppbXBvcnQgY29tLnRhaXdhbmxpZmUudGVhbXdhbGsuY29tbW9uLmVudGl0eS5BYnN0cmFjdFByaW1hcnlLZXlFbnRpdHkgOwoKaW1wb3J0IGNvbS50YWl3YW5saWZlLnRlYW13YWxrLmNvbW1vbi5lbnRpdHkubWVtYmVyLk1ick1lbWJlciA7CgoKCmltcG9ydCBsb21ib2suQWxsQXJnc0NvbnN0cnVjdG9yIDsKCmltcG9ydCBsb21ib2suQnVpbGRlciA7CgppbXBvcnQgbG9tYm9rLkRhdGEgOwoKaW1wb3J0IGxvbWJvay5FcXVhbHNBbmRIYXNoQ29kZSA7CgppbXBvcnQgbG9tYm9rLk5vQXJnc0NvbnN0cnVjdG9yIDsKCmltcG9ydCBsb21ib2suVG9TdHJpbmcgOwoKCgoKCi8qKgoKICogQGF1dGhvciBTZWltby5aaGFuCgogKiBAdmVyc2lvbiAxCgogKiAKCiAqIEBkYXRlIDIwMjAvMDkvMjEKCiAqLwoKQEVudGl0eQoKQEVudGl0eUxpc3RlbmVycyAoIEF1ZGl0aW5nRW50aXR5TGlzdGVuZXIuY2xhc3MgKQoKQEpzb25JZ25vcmVQcm9wZXJ0aWVzICggaWdub3JlVW5rbm93biA9IHRydWUsIHZhbHVlID0geyAiaGliZXJuYXRlTGF6eUluaXRpYWxpemVyIiwgImhhbmRsZXIiLCAiZmllbGRIYW5kbGVyIiB9ICkKCkBKc29uSW5jbHVkZSAoIEpzb25JbmNsdWRlLkluY2x1ZGUuTk9OX0VNUFRZICkKCkBEYXRhCgpATm9BcmdzQ29uc3RydWN0b3IKCkBBbGxBcmdzQ29uc3RydWN0b3IKCkBFcXVhbHNBbmRIYXNoQ29kZSAoIGNhbGxTdXBlciA9IHRydWUgKQoKQFRvU3RyaW5nICggY2FsbFN1cGVyID0gdHJ1ZSApCgpAQnVpbGRlcgoKcHVibGljIGNsYXNzIFJlQmFkZ2VNZW1iZXIgZXh0ZW5kcyBBYnN0cmFjdFByaW1hcnlLZXlFbnRpdHkKCnsKCglARW51bWVyYXRlZCggRW51bVR5cGUuU1RSSU5HICkKCglAQ29sdW1uICggY29sdW1uRGVmaW5pdGlvbiA9ICJjaGFyKDEpIiApCgoJcHJpdmF0ZSBSZUJhZGdlTWVtYmVyLklzUmVhZCBpc1JlYWQgOwoKCQoKCUBEYXRlVGltZUZvcm1hdCAoIHBhdHRlcm4gPSAieXl5eS1NTS1kZCBISDptbTpzcyIgKQoKCUBKc29uRm9ybWF0ICggcGF0dGVybiA9ICJ5eXl5L01NL2RkIEhIOm1tOnNzIiwgdGltZXpvbmUgPSAiR01UKzgiICkKCglwcml2YXRlIExvY2FsRGF0ZVRpbWUgZ2V0QmFkZ2VBdCA7CgoJCgoJQE1hbnlUb09uZSAoIHRhcmdldEVudGl0eSA9IE1ick1lbWJlci5jbGFzcywgY2FzY2FkZSA9IHsgQ2FzY2FkZVR5cGUuUkVGUkVTSCwgQ2FzY2FkZVR5cGUuTUVSR0UgfSwgb3B0aW9uYWwgPSB0cnVlLCBmZXRjaCA9IEZldGNoVHlwZS5MQVpZICkKCglASm9pbkNvbHVtbiAoIG5hbWUgPSAibWVtYmVyX2lkIiwgcmVmZXJlbmNlZENvbHVtbk5hbWUgPSAiaWQiLCBmb3JlaWduS2V5ID0gQEZvcmVpZ25LZXkgKCBuYW1lID0gIm5vbmUiLCB2YWx1ZSA9IENvbnN0cmFpbnRNb2RlLk5PX0NPTlNUUkFJTlQgKSApCgoJLy9ASnNvbklnbm9yZVByb3BlcnRpZXMgKCBpZ25vcmVVbmtub3duID0gdHJ1ZSwgdmFsdWUgPSB7ICJyZUJhZGdlTWVtYmVycyIgfSApCgoJQEpzb25CYWNrUmVmZXJlbmNlCgoJcHJpdmF0ZSBNYnJNZW1iZXIgbWJyTWVtYmVyIDsKCgkKCglATWFueVRvT25lICggdGFyZ2V0RW50aXR5ID0gUmVCYWRnZS5jbGFzcywgY2FzY2FkZSA9IHsgQ2FzY2FkZVR5cGUuUkVGUkVTSCwgQ2FzY2FkZVR5cGUuTUVSR0UgfSwgb3B0aW9uYWwgPSB0cnVlLCBmZXRjaCA9IEZldGNoVHlwZS5MQVpZICkKCglASm9pbkNvbHVtbiAoIG5hbWUgPSAiYmFkZ2VfaWQiLCByZWZlcmVuY2VkQ29sdW1uTmFtZSA9ICJpZCIsIGZvcmVpZ25LZXkgPSBARm9yZWlnbktleSAoIG5hbWUgPSAibm9uZSIsIHZhbHVlID0gQ29uc3RyYWludE1vZGUuTk9fQ09OU1RSQUlOVCApICkKCgkvL0BKc29uSWdub3JlUHJvcGVydGllcyAoIGlnbm9yZVVua25vd24gPSB0cnVlLCB2YWx1ZSA9IHsgInJlQmFkZ2VNZW1iZXJzIiB9ICkKCglASnNvbkJhY2tSZWZlcmVuY2UKCglwcml2YXRlIFJlQmFkZ2UgcmVCYWRnZSA7CgoKCgkvKioKCgkgKiBAYXV0aG9yIFNlaW1vLlpoYW4KCgkgKiBAdmVyc2lvbiAxCgoJICoKCgkgKiBAZGF0ZSAyMDIwLzA5LzIxCgoJICovCgoJcHVibGljIGVudW0gSXNSZWFkCgoJewoKCgoJCU4gKCAnTicsICLmnKroroAiICksCgoJCVkgKCAnWScsICLlt7LoroAiICkgOwoKCgoJCXByaXZhdGUgZmluYWwgY2hhciBuYW1lIDsKCgkJcHJpdmF0ZSBmaW5hbCBTdHJpbmcgdmFsdWUgOwoKCgoJCS8qKgoKCQkgKiBDb25zdHJ1Y3RvcgoKCQkgKiBAcGFyYW0gbmFtZQoKCQkgKiBAcGFyYW0gdmFsdWUKCgkJICovCgoJCXByaXZhdGUgSXNSZWFkICggY2hhciBuYW1lLCBTdHJpbmcgdmFsdWUgKQoKCQl7CgoJCQl0aGlzLm5hbWUgPSBuYW1lIDsKCgkJCXRoaXMudmFsdWUgPSB2YWx1ZSA7CgoJCX0KCgoKCQkvKioKCgkJICogQHJldHVybiBjaGFyCgoJCSAqLwoKCQlwdWJsaWMgY2hhciBnZXROYW1lICgpCgoJCXsKCgkJCXJldHVybiBuYW1lIDsKCgkJfQoKCgoJCS8qKgoKCQkgKiBAcmV0dXJuIFN0cmluZwoKCQkgKi8KCgkJcHVibGljIFN0cmluZyBnZXRWYWx1ZSAoKQoKCQl7CgoJCQlyZXR1cm4gdmFsdWUgOwoKCQl9CgoKCgl9Cgp9Cg==
返回列表 上一筆 下一筆