第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將實(shí)體對象綁定到本地 @Transient 屬性?

如何將實(shí)體對象綁定到本地 @Transient 屬性?

瀟湘沐 2021-11-11 15:49:58
EmployeeInfo 實(shí)體類@Entity@Table(name = "employeeinfo")public class EmployeeInfo{@Id@GeneratedValue(strategy = GenerationType.IDENTITY)@Column(name = "id")private Long id;@Column(name = "employeeId")private String employeeId;@Column(name = "firstName")private String firstName;@Column(name = "middleName")private String middleName;@Column(name = "lastName")private String lastName;......}另一個實(shí)體類 ProjectTaskComments@Entity@Table(name = "projecttaskcomments")public class ProjectTaskComments{    @Id    @GeneratedValue(strategy = GenerationType.IDENTITY)    @Basic(optional = false)    @Column(name = "id")    private Long id;    @Basic(optional = false)    @Column(name = "comments")    private String comments;    @Basic(optional = false)    @Column(name = "commentTime")    @Temporal(TemporalType.TIMESTAMP)    private Date commentTime;    @Column(name = "fkCommentedBy")    private Long fkCommentedBy;    @Transient    @JsonIgnoreProperties    private EmployeeInfo commentedEmployee;    @Transient    @Autowired    EmployeeInfoService employeeInfoService;    public EmployeeInfo getCommentedEmployee() {        EmployeeInfo employeeInfo;        employeeInfo = employeeInfoService.getSingleEmployeeInfoByFkUserId(this.fkCommentedBy);        if(employeeInfo != null) {            this.commentedEmployee.setEmployeeId(employeeInfo.getEmployeeId());            this.commentedEmployee.setFirstName(employeeInfo.getFirstName());            this.commentedEmployee.setMiddleName(employeeInfo.getMiddleName());            this.commentedEmployee.setLastName(employeeInfo.getLastName());            this.commentedEmployee.setPhoto(employeeInfo.getPhoto());            return commentedEmployee;        } else {            return null;        }    }}我試圖通過 fkCommentedBy 屬性在 getCommentedEmployee() 方法中找到一個 EmployeeInfo 對象,并將其設(shè)置為 @Transient 屬性 commentedEmployee。我該如何解決?
查看完整描述

3 回答

?
翻翻過去那場雪

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個贊

目的是為一個非持久屬性建模,所以我不清楚為什么當(dāng)你通過“fkCommentedBy”屬性持久化它時,你為什么要在 commentedByEmployee 屬性上使用 @Transient。IMO,@ManyToOne 在這種情況下更合適。


@Entity

@Table(name = "projecttaskcomments")

public class ProjectTaskComments {


// .... other declarations 

@ManyToOne

@JoinColumn(name="fkCommentedBy")

private EmployeeInfo commentedEmployee;

// ..... other code

}

現(xiàn)在,如果您仍然想使用@Transient,那么在 getter 方法中,您需要確保您擁有對 EmployeeInfoService 對象的有效引用。@Autowired 在這里不起作用,因?yàn)?ProjectTaskComments 不是 spring 管理的 bean。


查看完整回答
反對 回復(fù) 2021-11-11
?
HUH函數(shù)

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個贊

需要檢查 null 并進(jìn)行一些初始化:


public EmployeeInfo getCommentedEmployee() {

  // check here

  if (employeeInfoService == null) return null;


  EmployeeInfo employeeInfo = employeeInfoService.getSingle...;

  if (employeeInfo != null) {

    // init here

    commentedEmployee = new EmployeeInfo();


    commentedEmployee.set...;

    return commentedEmployee;

  } else {

    return null;

  }

}


private void setCommentedEmployee(EmployeeInfo employeeInfo) {

  // do nothing

}


查看完整回答
反對 回復(fù) 2021-11-11
?
弒天下

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個贊

是的,我終于可以解決它了。我只是做了以下工作:


將 @Component 添加到 ProjectTaskComments 類:


@Entity    

@Component    

@Table(name = "projecttaskcomments")    

public class ProjectTaskComments{

........

將 EmployeeInfoService 聲明為靜態(tài)并為該服務(wù)添加了一個 seter 方法并@Autowired 它。


@Transient

private static EmployeeInfoService employeeInfoService;


@Autowired

public void setEmployeeInfoService(EmployeeInfoService employeeInfoService) {

    this.employeeInfoService = employeeInfoService;

}


查看完整回答
反對 回復(fù) 2021-11-11
  • 3 回答
  • 0 關(guān)注
  • 175 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號