【发布时间】:2021-03-13 13:26:08
【问题描述】:
我在电话表中使用 productid 作为外键。我不知道在PhoneRepository 的id 部分写什么。因为报错
Product.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
【问题讨论】:
-
没有。我想这不是问题
-
我认为您还必须在实体
Phone中声明Id 类(Product)中的字段,并用@Id 对其进行注释。但IdClass将用于复合主键。 -
也许this post 会有所帮助