spring - 为什么我得到 org.springframework.beans.NotReadablePropertyException?
问题描述
这是我的模型课:
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name="[exclusive_data]")
public class OrderControlDataBean {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="id")
Long id;
@Column(name = "Body_Code")
String bodyCode;
@Column(name = "Merchant_Item_No")
String merchantItemNo;
@Column(name = "Merchant_No")
String no;
}
这是我的存储库界面
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import com.mypackage.mss.oas.filetransfer.app.model.OrderControlDataBean;
@Repository
@Transactional
public interface OrderControlRepository extends
JpaRepository<OrderControlDataBean, Long> {
public void deleteAllInBatch();
List<OrderControlDataBean> save(List<OrderControlDataBean>
orderControlDataBeans);
}
下面是调用此保存方法的服务层:
@Service
@EnableScheduling
public class FTPClientService {
private static final Logger logger =
LoggerFactory.getLogger(FTPClientService.class);
try {
// FTP Client connection code here//
BufferedReader reader = new BufferedReader(new
InputStreamReader(inputStream));
String line = null;
while ((line = reader.readLine()) != null) {
OrderControlDataBean orderControlBean = extractOrderControlBean(line);
if (!(orderControlBean.getBodyCode() == null))
if (!(orderControlBean.getMerchantItemNo() == null))
if (!(orderControlBean.getNo() == null))
inputList.add(orderControlBean);
}
success = ftpClient.completePendingCommand();
repository.deleteAllInBatch();
repository.save(inputList);
} catch (IOException ex) {
logger.error("Error: " + ex.getMessage());
ex.printStackTrace();
} catch (Exception e) {
logger.error("Error: " + e.getMessage());
e.printStackTrace();
} finally {
try {
if (ftpClient.isConnected()) {
ftpClient.logout();
ftpClient.disconnect();
}
} catch (IOException ex) {
logger.error("Error while closing the FTP connection.");
ex.printStackTrace();
}
}
logger.info("Loading OrderControl Data Completed Successfully");
}
我正在从 ftp 数据中填充 arraylist,读取它的保存到数据库失败。无论我做什么,我都会遇到异常:
org.springframework.beans.NotReadablePropertyException:bean 类 [java.util.ArrayList] 的无效属性“id”:在回退访问期间找不到属性字段!
数据库表的 id [id] [int] IDENTITY(1,1) NOT NULL。这是 ms sql 服务器。
有人可以帮忙吗?
谢谢
解决方案
我相信您需要将方法调用Logger
从更改repository.save(inputList)
为repository.saveAll(inputList)
。
该JpaRepository
接口将为您提供所有必要的方法,Spring 将在幕后完成繁重的工作。事实上,我相信你不需要在中实现任何方法,OrderControlRepository
甚至不需要使用@JpaRepository
注解。实施JpaRepository
应该就足够了。
一个简单的使用 Spring 的很好的演练在这里:https ://spring.io/guides/gs/accessing-data-jpa/ 。有关更多详细信息,您可以访问此处:https ://docs.spring.io/spring-data/jpa/docs/current/reference/html/
让我知道这是否有效!
推荐阅读
- c# - TreatWarningsAsErrors 与 /warnaserror
- java - 当用户得到正确答案时增加一个变量
- c - 为什么这个程序不写result.txt?
- gradle - 我尝试在我的颤振应用程序中使用地图视图并遇到一些错误
- reactjs - 从文件导入时,样式化的 NavLink 不起作用
- reactjs - 如何从 TouchableOpacity press 全屏启动 RN Expo 相机?
- c - 从输入检查可能的 Int 溢出
- amazon-web-services - 如何获取 AWS 中所有账户的所有 EC2 信息
- php - 如何从mysql准备语句中的两个表中选择值
- apache - 在 MAMP PRO 5.x 上使用 Apache 2.4