我正在NetBeans中开发一个三层Java企业应用程序,该架构包括表模型,表交互的外观,JavaBeans作为控制器,以及用于显示的XHTML网页。
我有一个从实体类生成的“Booking”表,其中包含主键ID、状态和日期。我需要添加新列(FOOD、SEATS和RATING),但这样做会导致在导航到从表中调用对象的网页时出现以下错误。
第一个月
根据我得到的错误消息,我假设问题是Java没有在现有的Booking表上创建新列。我该怎么解决这个问题?
我发现这个question与我的问题类似。但是我使用的是javax持久化而不是eclipse。如何在不完全删除表的情况下向表中添加另一列?
我在persistence.xml中有以下行,但是新列仍然没有生成<property name="javax.persistence.schema-generation.database.action" value="create"/>
我还尝试在我的模型中的变量声明上标记列名,如下所示,尽管它似乎没有做任何事情,因为列不是首先生成的。
public class Booking implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID")
private Long id;
@Temporal(TemporalType.DATE)
private Date bookingDate;
private String status;
@Column(name = "FOOD")
private String food;
@Column(name = "SEATS")
private Long seats;
@Column(name = "RATING")
private Long rating;
@Column(name = "REVIEW")
private String review;
private Long assignedKitchenStaffId;
private Long customerId;
@JoinColumn(name = "ASSIGNEDKITCHENSTAFF_ID")
@ManyToOne
private User assignedKitchenStaff;
@JoinColumn(name = "CUSTOMER_ID")
@ManyToOne
private User customer;
字符串
1条答案
按热度按时间weylhg0b1#
我想出了一个方法来添加新的列。通过将persistence.xml中的模式生成属性的值从“create”修改为“drop-and-create”,如下所示
字符串
它的一个问题是它会删除整个数据库,因此数据库中的所有数据都将丢失。虽然我的项目不是用于生产的,所以我能够承受为表创建额外列而丢失数据的成本。希望这能帮上忙