我有一个控制器方法,只是将测试对象添加到存储库中,尝试保存时出现以下完全错误。该服务调用CrudRepository
已解决的[org.springframework.dao.InvalidDataAccessApiUsageException:org.springframework.data.util.Pair类型的目标bean不是持久实体的类型(com.mycompany.hibernatepoc.ConnectionManager)!: org.springframework.data .util.Pair;嵌套异常是java.lang.IllegalArgumentException:org.springframework.data.util.Pair类型的目标bean不是持久实体(com.mycompany.hibernatepoc.ConnectionManager)的类型!:org.springframework.data.util.Pair ]
我的控制器
@Controller
public class MasterConnectionController {
@Autowired
MasterConnectionService masterConnectionService;
@RequestMapping(value = "/testAdd", method = RequestMethod.GET)
public ResponseEntity<MasterConnectionManager> testAdd() {
DocumentValidation documentValidation1 = new DocumentValidation();
documentValidation1.setDetails("1st validation for document 1");
DocumentValidation documentValidation2 = new DocumentValidation();
documentValidation2.setDetails("2nd validation for document 1");
ArrayList<DocumentValidation> documentValidationList = new ArrayList<DocumentValidation>();
documentValidationList.add(documentValidation1);
documentValidationList.add(documentValidation2);
DocumentDetail documentDetail1 = new DocumentDetail();
documentDetail1.setLocation("location of document 1");
documentDetail1.setDocumentValidationList(documentValidationList);
ConnectionManager connectionManager1 = new ConnectionManager();
connectionManager1.setType(ValidationType.Document);
MasterConnectionManager master = new MasterConnectionManager();
ArrayList<ConnectionManager> connectionManagerList = new ArrayList<ConnectionManager>();
connectionManagerList.add(connectionManager1);
master.setConnectionManagerList(connectionManagerList);
return new ResponseEntity<>(masterConnectionService.save(master),HttpStatus.OK);
}
MasterConnectionManager
@Entity
public class MasterConnectionManager {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long controlId;
@OneToMany(mappedBy= "masterConnectionManager", cascade = CascadeType.PERSIST)
private List<ConnectionManager> connectionManagerList;
public MasterConnectionManager(){}
public MasterConnectionManager(List<ConnectionManager> connectionManagerList) {
super();
this.connectionManagerList = connectionManagerList;
}
ConnectionManager
@Entity
public class ConnectionManager {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private int sequence;
@OneToOne
@JoinColumn(name = "masterConnectionManager_controlId")
private MasterConnectionManager masterConnectionManager;
public enum ValidationType {Email, Document, Sql};
@Enumerated(EnumType.STRING)
private ValidationType type;
@OneToOne
@JoinColumn(name = "emailDetail_id")
private EmailDetail emailDetail;
@OneToOne
@JoinColumn(name = "documentDetail_id")
private DocumentDetail documentDetail;
@OneToOne
@JoinColumn(name = "sqlDetail_id")
private SqlDetail sqlDetail;
public ConnectionManager(){};
public ConnectionManager(int sequence, MasterConnectionManager masterConnectionManager, ValidationType type,
EmailDetail emailDetail, DocumentDetail documentDetail, SqlDetail sqlDetail) {
super();
this.sequence = sequence;
this.masterConnectionManager = masterConnectionManager;
this.type = type;
this.emailDetail = emailDetail;
this.documentDetail = documentDetail;
this.sqlDetail = sqlDetail;
}
回购
@Repository
public interface MasterConnectionRepo extends CrudRepository <
MasterConnectionManager, Long> {
}