Note that there are some explanatory texts on larger screens.

plurals
  1. POHibernate update table B after table A is updated
    text
    copied!<p>I am complete new to Hibernate and I have a question in the following condition.</p> <p><b>User Class</b></p> <pre> @Entity @Table (name="user_table") public class User implements Serializable{ /** * */ private static final long serialVersionUID = 1L; +getters and setters //access by field //primary key @Id @Column (name = "username") private String username; @Column (name = "password") private String password; @Column (name = "email") private String email; /** * Cascade all operations */ @OneToMany(cascade = CascadeType.ALL) @JoinTable(name = "user_history_table", joinColumns = { @JoinColumn(name = "username") }, inverseJoinColumns = { @JoinColumn(name = "history_id") } ) private Set userHistory = new HashSet(0); } </pre> <p><b>History Class</b></p> <pre> @Entity @Table (name="history_table") public class History { +getters and setters //primary key @Id @Column (name = "history_id") private int id; @Column (name="url") private String url; @Column (name="region") private String region; @Column (name="source") private String source; @Column (name="target") private String target; @Column (name="cost") private double cost; @Column (name="balance") private double balance; } </pre> <p><b>The Schemate</b></p> <pre> create table user_table( username varchar(50) NOT NULL PRIMARY KEY, password varchar(20), email varchar(150) ); create table history_table( history_id INTEGER AUTO_INCREMENT PRIMARY KEY, url varchar(1000) NOT NULL, cur_timestamp timestamp default now(), region varchar (100) NOT NULL, source varchar(30) NOT NULL, target varchar(30) NOT NULL, cost decimal (10,2) NOT NULL, balance decimal (10,2) NOT NULL ); create table user_history_table( user_history_id INTEGER AUTO_INCREMENT PRIMARY KEY, username varchar(50) NOT NULL, history_id INTEGER NOT NULL, FOREIGN KEY (username) REFERENCES user_table(username), FOREIGN KEY (history_id) REFERENCES history_table(history_id) ); </pre> <p><b>App class</b></p> <pre> public class App { public static void main(String [] args){ SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); Session session = sessionFactory.getCurrentSession(); Transaction tx = session.beginTransaction(); System.out.println("Inserting Record"); History history = new History(); history.setBalance(1000); history.setCost(50.99); history.setRegion("region"); history.setSource("Source_test"); history.setTarget("Target_test"); history.setUrl("http://stackoverflow.com/"); session.save(history); tx.commit(); System.out.println("Done"); } } </pre> <p>App.java will insert an entry to the history_table, but I also need the user_history_table to be updated too. So, should I create another object, say user_history_obj and update it just like the history_table update or there is a hibernate way of doing it. Thnaks.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload