我在春天很新,我有以下疑问。在Web应用程序中,我有以下映射数据库表的实体类:
@Entity
@Table(name = "KM_PROJECT_INFO")
public class KM_ProjectInfo implements Serializable {
@Id
@GeneratedValue
private Long idProjectInfo;
@Column(name = "name")
private String name;
@Column(name = "technology")
private String technology;
@ManyToOne
@JoinColumn(name = "idCountry")
private KMCountry country;
@Column(name = "power")
private long power;
@Column(name = "cod")
private String cod;
@ManyToOne
@JoinColumn(name = "idProjectInfoStatus")
private KM_ProjectInfoStatus status;
@Column(name = "folderTech")
private long folderTech;
@Column(name = "folderProject")
private long folderProject;
// GETTER & SETTER
}
在视图中,有一个表单,用户可以在其中插入前一个实体类的字段值。当用户单击此表单的提交按钮时,它将执行控制器的操作(在特定情况下,它是一个Struts 2动作控制器,但我认为这并不重要)。
在此操作中,我必须将用户插入的值检索到表单字段中,并使用这些值来设置上一个实体类的匹配字段,然后我必须使用Hibernate将其保留在数据库上。
所以我的疑问是:使用 @Entity 注释对前一个实体类进行了注释。我可以简单地将它注入我的控制器吗?我可以注入一个带有 @Entity ?
的类的实例TNX
答案 0 :(得分:1)
你可以实现这一点',不会自动发生,因为@Entity
没有将类标记为一个spring bean。您可以将它设置为Spring bean,但是Spring框架将接管管理实体对象的生命周期,该实体对象应该是JPA框架的独占角色。以明智的方式开展这项工作将是一场可怕的斗争。
幸运的是,根据您的描述,您不需要这样做,只需创建实体的实例,用form params填充它并将对象传递给您的服务或DAO。
答案 1 :(得分:0)
您只需使用简单的java对象创建来创建对象:
KM_ProjectInfo obj = new KM_ProjectInfo();
然后使用setter方法设置属性并执行数据库操作。您不需要使用spring bean创建。
答案 2 :(得分:0)
您不需要将此作为弹簧豆注入控制器。