LoginSignup
0
0

More than 5 years have passed since last update.

継承先ModelでEbean.update()が実行されない。

Posted at

環境:
playframework 2.5 ebean 7.6.1
事象:
継承しているモデルに対してupdate()が実行されない。

理由としては、setterが継承元の値にセットしていたため。
super.~ではなくthis.~にすると実行される。
仕様上、親クラスにフィールドを持たせて継承先でセットしていた。
実際にsetterが呼ばれて値がセットされる先は同じだと思うんだけどなぜ?

Member.java
@Entity
@Table(name = "member")
public class MemberDatas extends AbstractMemberDatas {
  public void setId(Long Id) {
    super.Id = Id;
  }

  public void setMemberId(Long memberId) {
    super.memberId = memberId;
  }

  public Long getId() {
    return Id;
  }

  public Long getMemberId() {
    return memberId;
  }
}
AbstractMember.java
@MappedSuperclass
public abstract class AbstractSentenceDictDatas extends Model {

  @Column(name = "id")
  protected Long Id;

  @Column(name = "memberId")
  protected Long memberId;
}

MemberService.java
~
Member member = new Member();
member.setId(1);
member.setMemberId(1);
member.update();
~
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0