我使用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
1条答案
按热度按时间uoifb46i1#
删除产品上的@idclass注解,因为您没有自定义id提供程序。
同时从手机上的产品中删除@id并添加一个phoneid,如下所示: