Inserir em duas tabelas no mesmo form jdbc

Bom dia galera o problema eu acho que é simples mas não estou conseguindo eu tenho 2 tabelas

tabela users
username
password
enabled

tabela authorities
authority
fk_username

como eu posso usar um insert para essas duas tabelas, eu ja tinha o método para inserir em uma só tabela, depois que eu botei
Spring security que eu acho exige esse tipo de configuração,eu estou com essa dúvida, vcs podem me ajudar.

simples, faça um outro insert na segunda tabela.

abrassss

rs… pode parecer piada o que o renanreismartins disse, mas é isso mesmo meu amigo.

Não consigo entender aonde está a dificuldade em fazer isso. Pode nos passar mais detalhe do problema que está enfrentando?

Acho que a dúvida dele é que ao persistir na tabela de permissóes a fk_username seja corretamente salva, no caso dele seria um relacionamento ManyToMany, é o mesmo problema que eu tenho para persistir um OneToMany, se instanciar a outra tabela e mandar salvar, a FK não é salva, fica nula.
Isso ainda não ficou claro nas minhas pesquisas no fórum.

justamente que meu amigo Guevara disse, que tinha que fazer outro insert eu sabia desculpe
se eu não fui muito claro tem um dba aki na empresa que falou para usar trigger vou da uma pesquisada.
não sei se é a melhor forma.

sinceramente nao entendi nada do que os dois amigos escreveram, seria mais facil se detalhassem melhor o cenario e usassem pontuaçao correta.

abrassssss

Concordo com você renanreismartins.

Estamos tendo uma falha de comunicação. A dúvida não está nem um pouco CLARA!!!

Vou colocar o meu caso aqui e a conclusão que vcs chegarem vai ajudar tb ao autor do tópico.
Tenho um relacionamento @OneToMany:

@Entity
public class Contato {
	
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Long idContato;
	private String nome;
	private String email;
	@OneToMany(targetEntity=Mensagem.class ,cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "contato",orphanRemoval=true)
	private List<Mensagem> mensagens = new ArrayList<Mensagem>() ;
	
	public Contato() {
	}
	
	
	
	public void setIdContato(Long idContato) {
		this.idContato = idContato;
	}
	
	public Long getIdContato() {
		return idContato;
	}

	public List<Mensagem> getMensagens() {
		return mensagens;
	}
	
	public void setMensagens(List<Mensagem> mensagens) {
		this.mensagens = mensagens;
	}
	
	public Contato(Long idContato, String nome, String email,
			List<Mensagem> mensagens) {
		this.idContato = idContato;
		this.nome = nome;
		this.email = email;
		this.mensagens = mensagens;
	}	
	
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
}
@Entity
public class Mensagem {
	
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Long idMensagem;
	private String assunto;
	@Column(columnDefinition="text")
	private String mensagem;
	@ManyToOne
	private Contato contato;
	
	public String getAssunto() {
		return assunto;
	}
	public void setAssunto(String assunto) {
		this.assunto = assunto;
	}	
	
	public Mensagem() {
	}
	
	public Mensagem(Long idMensagem, String assunto, String mensagem,
			Contato contato) {
		this.idMensagem = idMensagem;
		this.assunto = assunto;
		this.mensagem = mensagem;
		this.contato = contato;
	}
	public Long getIdMensagem() {
		return idMensagem;
	}
	public void setIdMensagem(Long idMensagem) {
		this.idMensagem = idMensagem;
	}
	public String getMensagem() {
		return mensagem;
	}
	public void setMensagem(String mensagem) {
		this.mensagem = mensagem;
	}
	public Contato getContato() {
		return contato;
	}
	public void setContato(Contato contato) {
		this.contato = contato;
	}

}

Pelo exposto acima, temos um contato que pode ter várias mensagens e uma mensagem deve pertencer a um contato.Correto?
Agora, para persistir isso na jsp:

<li><label for="mensagem.assunto">Assunto</label>	
	<div><input name="contato.mensagem.assunto" type="text" maxlength="255" />
	</div>
	</li>	
	
	<li><label for="mensagem.mensagem">Mensagem</label>	
	<div><textarea name="contato.mensagem.mensagem" rows="5" cols="80"></textarea>
	</div>
	</li> 	

O parâmetro do name não é reconhecido, até pq assunto e mensagem não estão na classe(ou tabela) Contato e sim na Mensagem.
Esse é o problema, como persistir um objeto Contato que pode possuir várias mensagens. Se instanciar a Mensagem, não vai salvar a Id do contato na tabela Mensagem, ficando desta forma:

O mesmo acontece com a dúvida do autor do tópico, embora o relacionamento seja ManyToMany.
Neste link mostra como deve ser feito, só que não serve para persistir via web:
http://www.hiberbook.com/HiberBookWeb/learn.jsp?tutorial=18mappingonetomanyassociations
Não percebi se o autor do tópico está em aplicação web ou desktop, se for desktop o link acima pode até ajudar.
Abraço!

éo seguinte como mostrei eu tenho uma pk username e uma fk_username eu queria que quando
inserisse na tabela o username fosse inserindo tambem o fk_username.
assim que esta na documentação do spring security da até para fazer com uma tabela mas não fica bom

vlw tentei não sei se fui claro.

dcorteztec , no seu caso é um relacionamento ManyToMany, vc viu se banco criou a terceira tabela que vai armazenar as ids das outras duas?

@Guevara

[quote]
Neste link mostra como deve ser feito, só que não serve para persistir via web: [/quote]

sem sentido isso, hibernate, jpa e etc funcionam igual independente de plataforma, acho que vc deve estudar mais esses frameworks/especificaçoes

2o esse codigo html nao funciona, seu obj contato nao tem um atributo mensagem

vc deve instanciar um atributo mensagem no seu controller e dps fazer algo do tipo no seu html

<input name="mensagem.assunto"  type="text" maxlength="255" />  

e por fimassociar a mensagem ao seu contato e vice-versa.

3o numa associaçao bi-direcional vc deve setar o atributo mappedby no lado fraco da relaçao

@dcorteztec man vc pode fazer isso por uma trigger como citou ou entao como ja foi dito fazer um simples insert na outra tabela, onde esta a dificuldade?

abrassssss

Oi renanreismartins!
Eu me referia a forma de gravar os dados, enquanto na web usamos tags, no desktop fazemos isso da forma como está no link, o meu problema era passar a idéia de persistência no desktop para a web usando o .
Finalmente consegui resolver a questão, a dica é alterar o Controller e o DAO tb, além de deixar o form para persistir o objeto em questão, sem associação ao outro.

Abraço!

nesse caso o merge() do hibernate não resolveria?!?

Amigo.
Estou mais ou menos com o mesmo problema que você tinha.
Poderia postar como ficaram seus DAO e Controller?
Grato!