2
正如我试图实体映射到使用JPA表(Hibernate实现),我发现了一些令人困惑的name属性似乎并没有在现场工作
当我消气使用注释,事情都OK
@Column(name = "main_battery_voltage", precision = 2)
public float getMainBatteryVoltage() {
return mainBatteryVoltage;
}
但是当我尝试现场同样的事情,现场的名字被用来与属性
@Column(name = "main_battery_voltage", precision = 2)
private float mainBatteryVoltage;
系统忽略name属性,在DB,因此辉列名mainBatteryVoltage运行带领任务。
我使用的MySQL,这是persistence.xml中
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
<persistence-unit name="SolarPersistenceUnit">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>com.cs.solar.db.entity.User</class>
<class>com.cs.solar.db.entity.Lamp</class>
<class>com.cs.solar.db.entity.Project</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
<!--<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>-->
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/SOLAR"/>
<property name="hibernate.connection.username" value="root" />
<property name="hibernate.connection.password" value="admin" />
<property name="hibernate.connection.autocommit" value="false"/>
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.max_fetch_depth" value="3"/>
</properties>
</persistence-unit>
<persistence-unit name="TestSolar" />
</persistence>
虽然现在的工作,我很好奇,是什么原因这个问题,谢谢
这是您使用? – rbento
我使用Hibernate 4.0 – Korben
删除的name属性Hibernate的版本,namings应采取的默认值,它是驼峰到camel_case强调。此外,请当然,字段访问类型是设置的。尝试这样做不是使用浮点数,而是使用字符串。 – JMelnik