首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何访问@EmbeddedId字段?

如何访问@EmbeddedId字段?
EN

Stack Overflow用户
提问于 2018-01-03 10:44:54
回答 1查看 1.3K关注 0票数 1

我有一个@Entity,它有一个复合主键。因此,我创建了一个保存PK字段的@EmbeddedId

问:通过id.*直接访问这些字段更好,还是应该在父类中创建getter/setter?

示例:

代码语言:javascript
运行
复制
@Entity
public class MyPerson {
    @EmbeddedId
    private PersonId id;

    public String getFirstname() {
        return id.getFirstname();   
    }

    public String getLastname() {
        return id.getLastname();
    }

    public LocalDate getDob() {
        return id.getDob();
    }   
}

@Embeddable
public class PersonId implements Serializable {
    private String firstname;
    private String lastname;
    private LocalDate dob;

    //getter+setter as well
}

我最好使用person.getFistname()还是person.getId().getFirstname()

前者更清楚,但缺点是我必须在MyPersonPersonId中创建getter。

什么应该是访问的首选方式,为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-03 11:14:52

您不必创建属性。

代码语言:javascript
运行
复制
private PersonId id

可选是

代码语言:javascript
运行
复制
@Entity  @IdClass(PersonId.class)
public class MyPerson {
    @Id private String firstname;
    @Id private String lastname;
    @Id private LocalDate dob;

    // Getters and setters here    
}

并且只在加载PersonId实体时使用MyPerson:

代码语言:javascript
运行
复制
PersonId peronId = new PersonId(firstname, lastname, dob);
MyPerson person = session.get(MyPerson.class, personId);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48075807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档