views:

78

answers:

0

Hi all,

I'm using the folowing sequence in my code. (I got the sequence and

@Id
 @SequenceGenerator(name = "S912_PRO_SEQ",
        sequenceName = "S912_PRO_SEQ",
              allocationSize = 1)
 @GeneratedValue(strategy = GenerationType.SEQUENCE,
        generator = "S912_PRO_SEQ")
 @Column(name = "PRO_ID", unique = true,
   nullable = false, precision = 9,
   scale = 0)
 public int getId() {
  return this.id;
 }

And using the following sequence / triggers in my DB.

CREATE SEQUENCE S912_PRO_SEQ
  nomaxvalue
  minvalue 20;

CREATE OR REPLACE TRIGGER S912_PRO_B_I_TRG 
BEFORE INSERT ON S912_project
REFERENCING OLD AS OLD NEW AS NEW 
FOR EACH ROW ENABLE
begin
IF :NEW.pro_ID IS NULL THEN
select S912_PRO_SEQ.nextval into :new.pro_ID from dual;
END IF;
end;

I was wondering if there is a way to let hibernate generate a sequence ONLY if the ID is <=0 (not set) or if the ID already exists. I know for most cases my trigger would fix the situation. But I do not want to rely completely on it.

I hope someone can help me out :p