J'apprends Hibernate ORM (v.3) maintenant et j'ai une question. J'ai une table appelée UTILISATEURS, créée avec annotations:Créer une table dynamiquement avec hibernate
package com.hibernatedb.entities;
import javax.persistence.*;
@Entity
@Table(name = "USERS",uniqueConstraints = {@UniqueConstraint(columnNames={"USER_LOGIN", "USER_EMAIL"})})
public class User {
@Column(name = "USER_LOGIN", length=80, nullable=false)
private String login;
@Column(name = "USER_PASS", length=80, nullable=false)
private String password;
@Column(name = "USER_EMAIL", length=80, nullable=false)
private String email;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "USER_ID", nullable=false)
private Long id;
...
// some getters and setters, toString() and other stuff
...
}
Et une entité produit:
@Entity
@Table(name = "PRODUCTS",uniqueConstraints = {@UniqueConstraint(columnNames={"PRODUCT_ID", "PRODUCT_NAME"})})
public class Product {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="PRODUCT_ID")
private long id;
@Column(name="PRODUCT_NAME", length=85, nullable=false)
private String name;
@Column(name="PRODUCT_DESCRIPTION", columnDefinition="mediumtext", length=1000)
private String description;
@Column(name="PRODUCT_COST", nullable=false)
private double cost;
Alors ma question est la suivante: Comment peut-on créer une table appelée comme « USER +
User.getId()
BUYS », qui Contai ns a 2 clés étrangères (user_id et Product_ID) pour l'utilisateur dans l'entité (table de l'enregistrement) "utilisateur" sans création de table SQL brute, mais en utilisant des annotations Hibernate ou XML mapping.So je veux avoir quelque chose comme
public class TransactionEntityBulider() {
public TransactionEntityBulder(User user)
// something that build me "USER + User.getId() BUYS" table and
}
public TransactionEntity getEntity() {
// something that return a "USER + User.getId() BUYS" table entity
}
Aussi je voudrais voir d'autres façons de résoudre mon problème.
Voulez-vous dire que vous voulez créer USER_BUYS de table (qui contient USER_ID et PRODUCT_ID)? – Phan
Non, je voulais créer une table pour chaque enregistrement dans la table USERS avec un nom comme "USER" + User.getId() + "BUYS". Et ces tables contiendront les clés étrangères USER_ID et PRODUCT_ID. – teddypickerfromul