java—此类不定义idclass外键

7fyelxc5  于 2021-07-22  发布在  Java
关注(0)|答案(1)|浏览(281)

我使用productid作为电话表中的外键。我不知道在phonerepository的id部分写什么。因为给了一个错误
产品.java

@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Product {

@Id  @GeneratedValue(strategy = GenerationType.IDENTITY)
private long productID;
...

电话.java

@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
@IdClass(Product.class)
public class Phone implements Serializable{

private static final long serialVersionUID = 1L;

@Id
@OneToOne
@JoinColumn(name = "productID")
private Product product;
...

phonerepository.java文件

@Repository
 public interface PhoneRepository extends CrudRepository<Phone, Product>{  //I tried Long

  }

错误

Caused by: java.lang.IllegalArgumentException: This class [class 
com.test.project.data.entity.prod.Phone] does not define an IdClass
uoifb46i

uoifb46i1#

删除产品上的@idclass注解,因为您没有自定义id提供程序。
同时从手机上的产品中删除@id并添加一个phoneid,如下所示:

@Id
private long phoneID;

@OneToOne
@JoinColumn(name = "productID", referencedColumnName = "productID")
private Product product;

相关问题