微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何为OneToOne关系设置值?

如何解决如何为OneToOne关系设置值?

我有2个定义为一对一的模型。

@Entity
@Table(name = "Form_Item_Production")
public class FormItemProduction {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "item_id",nullable = false)
    private Long itemId;

    @OnetoOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "shift_lookup_id")
    private AppLookup appLookup;

    getter and setter
}

一个是查找表

@Entity
@Table(name = "App_Lookup")
public class AppLookup {

    @Id
    @GeneratedValue
    @Column(name = "Lookup_Id",nullable = false)
    private Long lookupId;

    @Column(name = "Lookup_Name",length = 30,nullable = false)
    private String lookupName;

    getter and setter
}

我尝试将DB中的“ shift_lookup_id”中的值添加到sysout打印中,并且两个表之间的关系正常工作,因为我能够打印出正确的值

for (FormItemProduction x : a) {
    System.out.println("YEAH RIGHT " + x.getAppLookup().getLookupName());
}

由于我只在数据库中手动添加了值,所以我现在试图从我的jsp文件中保存值,但不完全知道在输入中写什么:

 <form:input path="formItemProduction.shiftLookupId" />

这样做不会将jsp的值保存到我绑定的模型中。我试图在我的实体中添加一个额外的字段

@Column(name = "shift_lookup_id",nullable = true)
private String shiftLookupId;

但是它抛出了错误

org.hibernate.MappingException: Repeated column in mapping for entity: com.mamee.factory.security.entity.FormItemProduction column: shift_lookup_id (should be mapped with insert="false" update="false")

有什么想法如何正确地以输入形式输入路径?还是需要更改模型?

解决方法

使用以下方法修复:

<form:input path="formItemProduction.appLookup.lookupId" />

能够存储来自jsp的值并传递给我的控制器模型

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。