Java Hibernate-为什么字符串属性被延迟加载?
我有一个简单的实体Java Hibernate-为什么字符串属性被延迟加载?,java,hibernate,spring-data,Java,Hibernate,Spring Data,我有一个简单的实体配置,它有一个ID和一个String属性 @Data @AllArgsConstructor @NoArgsConstructor @Wither @Entity @Table(name = "CONFIGURATION") public class Configuration { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "ID&q
配置
,它有一个ID和一个String属性
@Data
@AllArgsConstructor
@NoArgsConstructor
@Wither
@Entity
@Table(name = "CONFIGURATION")
public class Configuration {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID")
private Long id;
@Column(name = "CONFIG_OBJECT")
private String configItem1;
}
我有一个简单的JPA存储库
public interface ConfigurationRepository extends JpaRepository<Configuration, Long> {
}
但我有个例外
无法初始化代理[com.mk.myapp.model.Configuration#1]-无会话
我假设属性
configItem1
被延迟加载,但是为什么呢?当我在关系中有一些实体时,我会想到这一点,但是为什么要延迟加载字符串属性呢?用于检索配置实体的方法getOne(1)
总是返回一个带有未初始化字段的代理。只有id字段被自动填充
尝试存储库中的findbyId
方法获取配置,您将发现字符串字段已填充
这个问题以前也已回答过,例如,因此我认为可以将其作为副本关闭
final Configuration configuration = configurationRepository.getOne(1L);//id 1 exists
configuration.getConfigItem1(); //the exception is thrown here