環境:
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();
~