这为所有实体设置了一个通用的 EntityListener。
创建一个名为 orm.xml 的文件并将其放在与 persistence.xml 文件相同的目录中(例如 META-INF)。我不确定这是否可以放入战争文件中。orm.xml 文件的内容应该如下:
<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings version="2.0" xmlns="http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_2_0.xsd">
<persistence-unit-metadata>
<persistence-unit-defaults>
<entity-listeners>
<entity-listener class="nathan.db.Listener"/>
</entity-listeners>
</persistence-unit-defaults>
</persistence-unit-metadata>
</entity-mappings>
然后创建一个名为 Listener 的类。
package nathan.db;
import javax.persistence.PrePersist;
public class Listener
{
@PrePersist
public void event(Object entity)
{
// salt password
}
}