在我的Java应用程序中创建Value Object(Java Bean),其中有一个字段
@Entity
@Table(name="EC_TIMETABLE")
public class TimetableVO
{
----//@id and some other column and variables
----
private List<WeekdayType> repeatDays;//Their is No column in Database
------
------//setter and getter method
}
听到WeekdayType是枚举类
public static enum WeekdayType {
MONDAY(Calendar.MONDAY), TUESDAY(Calendar.TUESDAY), WEDNESDAY(
Calendar.WEDNESDAY), THURSDAY(Calendar.THURSDAY), FRIDAY(
Calendar.FRIDAY), SATURDAY(Calendar.SATURDAY), SUNDAY(
Calendar.SUNDAY);
private int day;
private WeekdayType(int day) {
this.day = day;
}
我正在使用TimetableVO getRepeatedDays()另一个类。
当我启动服务器时出现错误
org.hibernate.MappingException: Could not determine type for: java.util.List, at table: EC_TIMETABLE, for columns: [org.hibernate.mapping.Column(repeatDays)]
他们在数据库或语法中需要的任何列问题..... 提前谢谢..
答案 0 :(得分:1)
不,如果您不想,您不需要在此字段的数据库中有一列。
如果您不想让它持久化,可以通过@Transient注释将其标记为瞬态。
@Transient
private List<WeekdayType> repeatDays;
答案 1 :(得分:0)
将集合标记为瞬态将指示Hibernate这不是持久项。我觉得像this这样的东西更符合你的要求。
答案 2 :(得分:0)
JPA的@Transient注释用于指示字段不会在数据库中保留,即它们的语义不同。
现在解决方案是......
@Transient
private List<WeekdayType> repeatDays;