Java 查找对象Spring JPA时出错:“通过反射访问持久属性字段时出错”
我有以下课程:Java 查找对象Spring JPA时出错:“通过反射访问持久属性字段时出错”,java,spring,jpa,reflection,Java,Spring,Jpa,Reflection,我有以下课程: @Entity(name = "focusoc_orbit") @Data public class OrbitAdapter extends Adapter{ @Id private String id; ... public String getId() { return id; } public void setId(String id) { this.id = id; } ... }
@Entity(name = "focusoc_orbit")
@Data
public class OrbitAdapter extends Adapter{
@Id
private String id;
...
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
...
}
以及
我还定义了存储库:
public interface ConjunctionRepository extends PagingAndSortingRepository<ConjunctionAdapter, Long> {
public ConjunctionAdapter findByTargetAndChaserAndTimeOfCloseApproach(String target, String chaser, Date timeOfCloseApproach);
}
它返回错误:
org.hibernate.property.access.spi.PropertyAccessException:错误
访问字段[private java.lang.String]
gcs.fds.focusoc.adapter.OrbitAdapter.id]通过反射进行持久化
属性[gcs.fds.focusoc.adapter.OrbitAdapterid]:02035A
我尝试了很多我发现的不同的解决方案,但对我来说不起作用。有什么帮助吗?我解决了
使用表名更改@Table类的注释@Data。所以
@Entity
@Table(name = "focusoc_orbit")
public class OrbitAdapter extends Adapter{
@Id
private String id;
...
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
...
}
以及
这样做会返回错误
java.lang.IllegalArgumentException:参数值[02035A]未指定
匹配预期类型[gcs.fds.focusoc.adapter.OrbitAdapter n/a]
因此,我将注释@Query添加到存储库中,以指定必须在数据库中搜索哪些内容
public interface ConjunctionRepository extends PagingAndSortingRepository<ConjunctionAdapter, Long> {
@Query("SELECT c FROM ConjunctionAdapter c WHERE c.target.id = :target AND c.chaser.id = :chaser AND c.timeOfCloseApproach = :timeOfCloseApproach")
public ConjunctionAdapter findByTargetAndChaserAndTimeOfCloseApproach(String target, String chaser, Date timeOfCloseApproach);
}
解决了 我解决了
使用表名更改@Table类的注释@Data。所以
@Entity
@Table(name = "focusoc_orbit")
public class OrbitAdapter extends Adapter{
@Id
private String id;
...
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
...
}
以及
这样做会返回错误
java.lang.IllegalArgumentException:参数值[02035A]未指定
匹配预期类型[gcs.fds.focusoc.adapter.OrbitAdapter n/a]
因此,我将注释@Query添加到存储库中,以指定必须在数据库中搜索哪些内容
public interface ConjunctionRepository extends PagingAndSortingRepository<ConjunctionAdapter, Long> {
@Query("SELECT c FROM ConjunctionAdapter c WHERE c.target.id = :target AND c.chaser.id = :chaser AND c.timeOfCloseApproach = :timeOfCloseApproach")
public ConjunctionAdapter findByTargetAndChaserAndTimeOfCloseApproach(String target, String chaser, Date timeOfCloseApproach);
}
解决了
public interface ConjunctionRepository extends PagingAndSortingRepository<ConjunctionAdapter, Long> {
@Query("SELECT c FROM ConjunctionAdapter c WHERE c.target.id = :target AND c.chaser.id = :chaser AND c.timeOfCloseApproach = :timeOfCloseApproach")
public ConjunctionAdapter findByTargetAndChaserAndTimeOfCloseApproach(String target, String chaser, Date timeOfCloseApproach);
}