我正在使用注释将字符串的基本集合映射到这样的现有实体。在父实体类中:
@org.hibernate.annotations.CollectionOfElements
@JoinTable (name="GoalToAchieve_entry", joinColumns=@JoinColumn(name="goalToAchieve_id"))
@org.hibernate.annotations.Sort(type = org.hibernate.annotations.SortType.NATURAL)
private SortedSet<String> entries = new TreeSet<String>();
这很好用。我有一个由连接产生的2列(goalToAchieve_id和元素)表。所以我想知道,如何在集合的每个字符串中添加日期/时间戳(由MySQL自动生成)。每次在集合中添加新String时,我都可以显示带有时间戳的第3列?目标是使用简单对象(字符串)的集合,而不必创建一个全新的实体(带有时间/日期字段)。
有推荐的方法吗?我相信即使我在jsp接口上提供了一个时间戳字段来处理向集合添加新字符串,它仍然是一个休眠问题,因为我需要在数据库上保留时间戳。
提前感谢您的帮助。
最诚挚的问候
答案 0 :(得分:1)
Hibernate @CollectionOfElements
不仅可以用于简单类型。您可以定义一个包含两个字段的类,String值和时间戳,并使用@Embeddable
注释该类。然后,Hibernate会将其作为两个单独的数据列保存到数据库中。此类不代表实体,只是复合值类型。
下一个问题是如何生成该时间戳。您可以在java中执行此操作,字段的默认初始值为“new Date()
”(或其他)。