2012-01-13 51 views
1

我有SQL Server上此表Hibernate的基础上添加日期序列

  • ID INT
  • journal_date日期时间
  • 序列INT

什么即时试图做的是基于序列在日期时间值。

例如数据库

| id | journal_date | sequence | 
-------------------------------- 
| 1 | 2012-01-01 |  1 | 
| 2 | 2012-01-01 |  2 | 
| 3 | 2012-01-02 |  1 | 
| 4 | 2012-01-01 |  3 | 

如何做到这一点的休眠模式和注释?

+0

我不处理它的代码在冬眠中不知道如何做到这一点。但总的来说,你可以试试这个。 '从表中选择max(sequence)+1 where journal_date = input_date' – Vaandu 2012-01-13 06:40:51

+0

并且?你有什么问题?你有什么尝试?你有什么问题? – 2012-01-13 08:49:03

+0

对不起,我很着急,如何在冬眠时自动执行此操作?我在模型中使用hibernate和注释。 – ahmy 2012-01-13 09:56:27

回答

0

,填补了顺序列在第一时间

UPDATE journaltable t1 SET sequence = 
    (SELECT COUNT (*) FROM journaltable t2 
    WHERE t2.journal_date = t1.journal_date AND t2.id < t1.id); 

,并保持同步或者使用触发器与

UPDATE journaltable t1 SET sequence = 
    (SELECT COUNT (*) FROM journaltable t2 WHERE t2.journal_date = t1.journal_date AND t2.id < t1.id) 
    WHERE t1.id = @newlyInsertedId; 

或使用Hibernate