小编Ari*_* F.的帖子

JPA持有具有一对多关系的实体

配置

  • EcliplseLink 2.3.2
  • JPA 2.0
  • 这些实体是从带有Entity Classes from Database ...向导的netbeans的db模式自动创建的.
  • 控制器类是从netbeans自动创建的,具有来自Entity Classes ...向导的JPA Controller Classes

问题的简短版本

在经典场景中,两个表具有一对多关系.我创建父实体,然后创建子实体,并将子项附加到父项的集合.当我创建(控制器方法)父实体时,我希望子实体被创建并与父关联.为什么不发生?

长版

家长班

@Entity
@XmlRootElement
public class Device implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    private Integer id;
    @Column(unique=true)
    private String name;
    @Temporal(TemporalType.TIMESTAMP)
    private Date updated;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "deviceId")
    private Collection<NetworkInterface> networkInterfaceCollection;

    public Device() {
    }

    public Device(String name) {
        this.name = name;
        updated …
Run Code Online (Sandbox Code Playgroud)

java persistence netbeans jpa

12
推荐指数
2
解决办法
4万
查看次数

Spring JPA REST一对多

我想通过向实体添加地址列表来扩展使用REST访问JPA数据的示例Person.所以,我添加了一个addresses@OneToMany注释的列表:

@Entity
public class Person {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    private String firstName;
    private String lastName;

    @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    private List<Address> addresses = new ArrayList<>();

   // get and set methods...
}
Run Code Online (Sandbox Code Playgroud)

Address堂课非常简单:

@Entity
public class Address {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;
    private String street;
    private String number;
    // get and set methods...
}
Run Code Online (Sandbox Code Playgroud)

最后我添加了AddressRepository界面:

public interface AddressRepository extends PagingAndSortingRepository<Address, …
Run Code Online (Sandbox Code Playgroud)

java rest spring-data-jpa spring-data-rest

9
推荐指数
1
解决办法
4998
查看次数