2013-06-27 4 views
4

Ниже является hibernate.cfg.xml:Можно ли настроить спящий режим без hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
<session-factory> 
<property name="hibernate.dialect">org.hibernate.dialect.DerbyDialect</property> 
<property name="hibernate.connection.driver_class">org.apache.derby.jdbc.ClientDriver</property> 
<property name="hibernate.connection.url">jdbc:derby://localhost:1527/XE</property> 
<property name="hibernate.connection.username">username</property> 
<property name="hibernate.connection.password">password</property> 
</session-factory> 
</hibernate-configuration> 

Интересно, если это необходимо всегда использовать hibernate.cfg.xml в каждом Hibernate Заявлении или есть какой-либо альтернативный способ настройки Hibernate.

+0

Что проблема с этим файлом? –

+1

Нет ничего плохого в этом файле, но я хочу знать, есть ли какой-либо альтернативный метод для настройки Hibernate. –

+0

Если вы хотите знать, что все в порядке, но, предпочитаете использовать xml-файл. Лучше всего. –

ответ

0

Вы можете указать свойства hibernate.cfg.xml в собственность инъекции весной bean.xml , например

<property name="hibernateProperties"> 
    <props> 
      <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop> 
      <prop key="hibernate.hbm2ddl.auto">update</prop> 
    </props> 
    </property> 

S о Аналогичным образом можно указать все свойства весной, как зависимость для sessionFacory

4

Это не является необходимым, в заводской конфигурации бина сеанса вы можете передать эти значения непосредственно с помощью

<property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">org.hibernate.dialect.DerbyDialect</prop> 
      <prop key="hibernate.show_sql"></prop> 
      <prop key="hibernate.use_outer_join">true</prop> 
     </props> 
    </property> 

экс

<bean id="mySessionFactory" 
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">org.hibernate.dialect.DerbyDialect</prop> 
      <prop key="hibernate.show_sql"></prop> 
      <prop key="hibernate.use_outer_join">true</prop> 
      <prop key="hibernate.jdbc.batch_size" >30</prop> 
      <prop key="hibernate.connection.SetBigStringTryClob">true</prop> 
     </props> 
    </property> 
    <property name="packagesToScan"> 
     <list> 
      <value>mypackage</value> 
     </list> 
    </property> 
</bean> 
+1

@MounicaReddy, как другой ответ отличается от моего –

2

Вы можете сделать это, установив свойства с помощью Java

public class TestHibernate { 

     public static void main(String arg[]) { 
     Properties prop= new Properties(); 

     prop.setProperty("hibernate.connection.url", "jdbc:mysql://<your-host>:<your-port>/<your-dbname>"); 

     //You can use any database you want, I had it configured for Postgres 
     prop.setProperty("dialect", "org.hibernate.dialect.PostgresSQL"); 

     prop.setProperty("hibernate.connection.username", "<your-user>"); 
     prop.setProperty("hibernate.connection.password", "<your-password>"); 
     prop.setProperty("hibernate.connection.driver_class", "org.postgresql.Driver"); 
     prop.setProperty("show_sql", true); //If you wish to see the generated sql query 

    SessionFactory sessionFactory = new Configuration().addProperties(prop).buildSessionFactory(); 
     Session session = sessionFactory.openSession(); 
    session.beginTransaction(); 
      Customer user = new Customer(); //Note customer is a POJO maps to the customer table in the database. 

    user.setName("test"); 
    user.setisActive(true); 
    session.save(user); 
    session.getTransaction().commit(); 
    session.close(); 

    } 

    } 


@Entity 
@Table(name = "customer", uniqueConstraints = { 
     @UniqueConstraint(columnNames = "customerid")}) 
public class Customer implements Serializable{ 

    private String name; 
    private int customerid; 
    private boolean isActive; 

    public Customer() { 
    } 

    public Customer(String name, int customerId, boolean isActive) { 
     this.name = name; 
     this.customerid = customerId; 
     this.isActive = isActive; 
    } 

    /** 
    *  GETTERS 
    */ 

    @Column(name = "name", unique = false, nullable = false, length = 100) 
    public String getname() { 
     return name; 
    } 

    @Id 
    @GeneratedValue(strategy = IDENTITY) 
    @Column(name = "customerid", unique = true, nullable = false) 
    public int getcustomerid() { 
     return customerid; 
    } 

    @Column(name = "isactive", unique = false, nullable = false) 
    public boolean getisactive() { 
     return isActive; 
    } 


    /** 
    *  SETTERS 
    */ 
    public void setname(String name) { 
     this.name = name; 
    } 

    public void setisactive(boolean isActive) { 
     this.isActive = isActive; 
    } 
}