Add a prototype of RegNoGenerator wich needs further tests
This commit is contained in:
		
							
								
								
									
										35
									
								
								backend/src/main/java/ovh/herisson/Clyde/RegNoGenerator.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								backend/src/main/java/ovh/herisson/Clyde/RegNoGenerator.java
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					package ovh.herisson.Clyde;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.hibernate.HibernateException;
 | 
				
			||||||
 | 
					import org.hibernate.engine.jdbc.connections.spi.JdbcConnectionAccess;
 | 
				
			||||||
 | 
					import org.hibernate.engine.spi.SessionImplementor;
 | 
				
			||||||
 | 
					import org.hibernate.engine.spi.SharedSessionContractImplementor;
 | 
				
			||||||
 | 
					import org.hibernate.id.IdentifierGenerator;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.io.Serializable;
 | 
				
			||||||
 | 
					import java.sql.Connection;
 | 
				
			||||||
 | 
					import java.sql.ResultSet;
 | 
				
			||||||
 | 
					import java.sql.SQLException;
 | 
				
			||||||
 | 
					import java.sql.Statement;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class RegNoGenerator implements IdentifierGenerator {
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public Object generate(SharedSessionContractImplementor session, Object object) {
 | 
				
			||||||
 | 
					        try{
 | 
				
			||||||
 | 
					            JdbcConnectionAccess jdbccon = session.getJdbcConnectionAccess();
 | 
				
			||||||
 | 
					            Connection conn = jdbccon.obtainConnection();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Statement statement = conn.createStatement();
 | 
				
			||||||
 | 
					            String query = "select count(reg_no)+1 from Users";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            ResultSet set = statement.executeQuery(query);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (set.next()){
 | 
				
			||||||
 | 
					                return set.getLong(1)+1000;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        } catch (SQLException e) {
 | 
				
			||||||
 | 
					            throw new RuntimeException(e);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return null;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -1,6 +1,8 @@
 | 
				
			|||||||
package ovh.herisson.Clyde.Tables;
 | 
					package ovh.herisson.Clyde.Tables;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import jakarta.persistence.*;
 | 
					import jakarta.persistence.*;
 | 
				
			||||||
 | 
					import org.hibernate.annotations.GenericGenerator;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.Date;
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -8,7 +10,8 @@ import java.util.Date;
 | 
				
			|||||||
@Table(name = "Users")
 | 
					@Table(name = "Users")
 | 
				
			||||||
public class User {
 | 
					public class User {
 | 
				
			||||||
    @Id
 | 
					    @Id
 | 
				
			||||||
    @GeneratedValue(strategy = GenerationType.AUTO)
 | 
					    @GenericGenerator(name = "userGen", type = ovh.herisson.Clyde.RegNoGenerator.class)
 | 
				
			||||||
 | 
					    @GeneratedValue(generator = "userGen")
 | 
				
			||||||
    private Long regNo;
 | 
					    private Long regNo;
 | 
				
			||||||
    private String lastName;
 | 
					    private String lastName;
 | 
				
			||||||
    private String firstName;
 | 
					    private String firstName;
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user