JPA/Hibernate duvida como usar sequência começando do 1 pra nota nova

Olá,
estou usando java 1.5 com anotação
uma duvida tenho um relacionamento Nota e Nota_Item onde está assim


Hoje está assim 


classe Nota_item{
    @Id
     @GeneratedValue(strategy = GenerationType.AUTO)
     @Column("item_nota")
     private int id

     @ManytoOne
     private Nota nota;
}



no objeto Nota_Item

Item_Nota           Nota
=======            ===
1                          5
2                          5
3                          5
------------------------------------
4                          6
5                          6
6                          6
-------------------------------------
7                          10
8                           10

queria que fosse assim
a cada nota nova começar o item da nota com o numero 1

tem como qual anotação usar teria que criar outro campo para controlar
e deixar esse id como está ???

qual anotação usar como fazer …

como deveria ficar 


Item_Nota           Nota
=======            ===
1                          5
2                          5
3                          5
------------------------------------
1                          6
2                          6
3                          6
-------------------------------------
1                         10
2                           10

alguém nunca caiu nessa situação

onde no item da nota tem um campo numerico sempre começando com o numero 1…

A cada nota fiscal a sequencia da item da nota começar por 1…

abs

Neste caso que você se refere, não é apenas um contador, por exemplo para saber a quantidade de itens na nota ou delimitar a quantidade máxima de itens?

Acho estranho no dia a dia ninguem caiu numa situação dessa como fazer em JPA com anotação ???

o que estou buscando é isso ?



item da Nota


id = 1
item_nota = 1
nota = 10
qtde = 10
valor = 1000
produto=34
----------------------------
id = 2
item_nota = 2
nota = 10
qtde = 1585
valor = 10
produto=12
----------------------------
----------------------------
id = 3
item_nota = 3
nota = 10
qtde = 1
valor = 1
produto=69
----------------------------


mudou de nota outra nota e o item_nota começar com nr 1

----------------------------
id = 4
item_nota = 1
nota = 11
qtde = 45
valor = 1
produto=89
----------------------------

----------------------------
id = 4
item_nota = 2
nota = 11
qtde = 1
valor = 12.99
produto=4
----------------------------


mais um dia sem resposta e solução…fico no aguardo…

mais um dia e nada de solução…

http://java.sun.com/javaee/5/docs/api/javax/persistence/GenerationType.html

Se você quer começar por 1, conforme você quer fazer, não pode usar nenhum dos 4 valores acima. Você tem de bolar seu gerador.

tem alguma idéia como fazer pois se for por sequencia de uma tabela
no banco de dados teria que passar o numero da nota sempre e criar
na sequencia no banco pra uma nota que nem sei o numero ???

Alguém teria algum exemplo pra esse problema ???

cara isso não precisa nem estar no banco de dados
faça um looping para preenchimento e um contador
não vejo mistério nisso

se vc tiver que colocar isso no banco de dados
não pode usar autoincrement, vai ter que fazer na mão mesmo

o que queria saber se existe alguma anotação ou jeito de colocar o numero sequencial do item
que quando muda o numero da nota começar por 1 …pois isso
já estou fazendo conforme exemplo abaixo ???

Essa era minha duvida pensei que tinha algo que fizesse isso automatico ???

Pois quando faço o persist é automatico qdo inseri Nota vai inserir automatico o Item da Nota …

Não sei se visualizou agora minha duvid a???

abs


public static void main(String[] args) {
		// TODO Auto-generated method stub
		//BasicConfigurator.configure();
        //Logger.getLogger("org").setLevel(Level.ERROR);
        
        System.out.println("Inicio...");
		// TODO Auto-generated method stub
		org.apache.log4j.BasicConfigurator.configure();
		
    	System.out.println("Inicio...");
		NFDAO nfDAO = new NFDAO();
		
		
		NotaFiscal n = new NotaFiscal();
		n.setDescricao("NOta Fiscal Urgente");
		
		NotaFiscalItem item1 = new NotaFiscalItem();
		item1.setQtdeItem(69);
		item1.setSeqItem(01);         /////coloca esse valor na mão
		item1.setId(n.getId());
		item1.setNotafiscal(n);
		item1.setValor(909.99);
		n.adicionaNotaFiscalItem(item1);
		
		
		NotaFiscalItem item2 = new NotaFiscalItem();
		item2.setQtdeItem(1111);
		item2.setSeqItem(02);       /////coloca esse valor na mão
		item2.setId(n.getId());
		item2.setNotafiscal(n);
		item1.setValor(123.56);
		n.adicionaNotaFiscalItem(item2);
		
		nfDAO.inserirNF(n);
		System.out.println("Gravação ok...."+n.getId());
	}

}


----

@Entity
@Table(name="Nota_Fiscal")
public class NotaFiscal {
	
	@Id
	@GeneratedValue
	@Column(name="ID_NOTA")
	private int id;
	@Column(name="descricao")
	private String descricao;
	@OneToMany(mappedBy= "notafiscal",cascade =javax.persistence.CascadeType.ALL)
	private List<NotaFiscalItem> itenss = new ArrayList<NotaFiscalItem>();

	@OneToOne
	@JoinColumn(name = "ID_CLIENTE")

	private Cliente cliente;
	public NotaFiscal(){
		
	}
	public int getId() {
		return id;
	}

	public void adicionaNotaFiscalItem(NotaFiscalItem item) {
		itenss.add(item);
	}
	public void setId(int id) {
		this.id = id;
	}


	
	
	public String getDescricao() {
		return descricao;
	}
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	public Cliente getCliente() {
		return cliente;
	}
	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}
	public List<NotaFiscalItem> getItenss() {
		return itenss;
	}
	public void setItenss(List<NotaFiscalItem> itenss) {
		this.itenss = itenss;
	}
	
	
}
-----

@Entity
@Table( name="Nota_Fiscal_Item")
public class NotaFiscalItem {
	
	
	@Id
	@GeneratedValue
	@Column(name="id_item")
    private int id;
	
	@Column
	private int seqItem;
	
	@Column
	private int qtdeItem;

    private double valor;
	
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn (name = "FK_ID_NOTA")	
	private NotaFiscal notafiscal;

	public NotaFiscalItem(int xqtde){
		this.qtdeItem= xqtde;
	}
	
    public NotaFiscalItem( String nome){
		
	}
    
    public NotaFiscalItem(){
	
	}
	public int getId() {
		return id;
	}


	public void setId(int id) {
		this.id = id;
	}


	public int getSeqItem() {
		return seqItem;
	}


	public void setSeqItem(int seqItem) {
		this.seqItem = seqItem;
	}


	public int getQtdeItem() {
		return qtdeItem;
	}


	public void setQtdeItem(int qtdeItem) {
		this.qtdeItem = qtdeItem;
	}


	public NotaFiscal getNotafiscal() {
		return notafiscal;
	}


	public void setNotafiscal(NotaFiscal notafiscal) {
		this.notafiscal = notafiscal;
	}

	public double getValor() {
		return valor;
	}

	public void setValor(double valor) {
		this.valor = valor;
	}
	
	
}


----